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)))))
|