summaryrefslogtreecommitdiffstats
path: root/tests/test-player.lisp
blob: 82cabcf75962be9b7bf291284a51f95a3820a27b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
(in-package :transacc-tests)

;;; Player tests
(def-suite* player-suite
	:description "Test object and methods for player"
	:in transacc-suite)

;; testing player creation
(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
		   (car (inventory:how-filled (player::stock p)))))
	(is (player:buy-item p c2 10))
	(is (= 1840 (player:get-cash p)))
	(is (= 20
		   (car (inventory:how-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)))))