summaryrefslogtreecommitdiffstats
path: root/tests/test.lisp
blob: 6e6fb9ba6e0f3e8cda1b7c9bda96786e9ca8a7e9 (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
56
57
(in-package :cl-user)
(defpackage transacc-tests
  (:use :cl
        :fiveam))
(in-package :transacc-tests)

(def-suite transacc-suite
	:description "Test transacc")

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

(test make-game
  (let* ((p (player:init-player "Joze"))
		 (c (list (commodities:new-commodity "apple" 5)
				  (commodities:new-commodity "pear" 7)))
		 (z (zone:new-zone "Bronx" c))
		 (g (game:new-game p z (list z))))
	(is (equal (type-of g) 'game::game))))

;; testing buy-item
(test buy-item
  (let* ((p (player:init-player "Joze"))
		 (c (list (commodities:new-commodity "apple" 5)
				  (commodities:new-commodity "pear" 7)))
		 (z (zone:new-zone "Bronx" c))
		 (g (game:new-game p z (list z))))
	(is (game:buy-item g "apple" 10))
	(is (not (game:sell-item g "pear" 1)))
	(is (game:sell-item g "apple" 5))
	(is (game:sell-item g "apple" 5))
	(is (game:buy-item g "pear" 20))
	(is (game:sell-item g "pear" 100))))

;; testing change-zone
(test change-zone
  (let* ((p (player:init-player "Joze"))
		 (c (list (commodities:new-commodity "apple" 5)
				  (commodities:new-commodity "pear" 7)))
		 (c2 (list (commodities:new-commodity "apple" 6)
				   (commodities:new-commodity "pear" 2)))
		 (z (zone:new-zone "Bronx" c))
		 (z2 (zone:new-zone "Manhattan" c2))
		 (g (game:new-game p z (list z z2))))
	(is (string= (zone:name (game::cur-zone g))
				 "Bronx"))
	(is (game:change-zone g "Manhattan"))
	(is (string= (zone:name (game::cur-zone g))
				 "Manhattan"))
	(game:buy-item g "pear" 10)
	(is (not (game:change-zone g "Paris")))
	(is (game:change-zone g "Bronx"))
	(game:sell-item g "pear" 10)
	(is (= (player:get-cash (game::player g))
		   2050))))