summaryrefslogtreecommitdiffstats
path: root/tests/test-player.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-player.lisp')
-rw-r--r--tests/test-player.lisp55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/test-player.lisp b/tests/test-player.lisp
new file mode 100644
index 0000000..2f261d7
--- /dev/null
+++ b/tests/test-player.lisp
@@ -0,0 +1,55 @@
+(in-package :transacc-tests)
+
+;;; Player tests
+(def-suite* player-suite
+ :description "Test object and methods for player"
+ :in transacc-suite)
+
+;; testing buy-item
+(test creating-player
+ (let ((p (player:init-player "Joze"))
+ (p2 (player:init-player "Mehmout" 555 8976)))
+ (is (eql (type-of p) 'player::player))
+ (is (equal (player:name p) "Joze"))
+ (is (= (player:get-cash p) 2000))
+ (is (= (player:get-debt p) 5000))
+ (is (eql (type-of p2) 'player::player))
+ (is (equal (player:name p2) "Mehmout"))
+ (is (= (player:get-cash p2) 555))
+ (is (= (player:get-debt p2) 8976))))
+
+(test repay-debt
+ (let ((p (player::init-player "Joze"))
+ (p2 (player::init-player "Mehmout")))
+ (is (player::repay-debt p 1000))
+ (is (player::repay-debt p 1000))
+ (is (not (player::repay-debt p2 3000)))))
+
+(test buy-item
+ (let ((p (player:init-player "Joze"))
+ (c (commodities:new-commodity "apple" 5))
+ (c2 (commodities:new-commodity "apple" 11))
+ (truck (commodities:new-commodity "truck" 100000)))
+ (is (player:buy-item p c 10))
+ (is (= 1950 (player:get-cash p)))
+ (is (not (player:buy-item p truck 1)))
+ (is (= 10
+ (inventory:filled (player::stock p))))
+ (is (player:buy-item p c2 10))
+ (is (= 1840 (player:get-cash p)))
+ (is (= 20
+ (inventory:filled (player::stock p))))))
+
+(test sell-item
+ (let ((p (player:init-player "Joze"))
+ (c (commodities:new-commodity "apple" 5))
+ (c2 (commodities:new-commodity "apple" 11))
+ (c3 (commodities:new-commodity "apple" 8))
+ (k (commodities:new-commodity "car" 10000)))
+ (is (player:buy-item p c 10))
+ (is (= 1950 (player:get-cash p)))
+ (is (player:buy-item p c2 10))
+ (is (= 1840 (player:get-cash p)))
+ (is (player:sell-item p c3 10))
+ (is (= 1920 (player:get-cash p)))
+ (is (not (player:sell-item p k 1)))))