1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # Test module for `achievements.nit`
18 module test_achievements
is test_suite
24 super NitrpgTestHelper
26 fun test_add_achievement
do
27 var db
= load_db
("test_add_achievement")
28 var game
= load_game
("Morriar/nit", db
)
29 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
30 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
31 game
.add_achievement
(a1
)
32 game
.add_achievement
(a2
)
33 assert game
.load_achievements
.length
== 2
37 fun test_load_achievement
do
38 var db
= load_db
("test_load_achievement")
39 var game
= load_game
("Morriar/nit", db
)
40 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
41 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
42 game
.add_achievement
(a1
)
43 assert game
.load_achievement
(a1
.id
).id
== "test_id1"
44 assert game
.load_achievement
(a2
.id
) == null
48 fun test_load_achievements
do
49 var db
= load_db
("test_load_achievements")
50 var game
= load_game
("Morriar/nit", db
)
51 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
52 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
53 var a3
= new Achievement(game
, "test_id3", "test_name", "test_desc", 15)
54 game
.add_achievement
(a1
)
55 game
.add_achievement
(a2
)
56 game
.db
.collection
("achievements").insert
(a3
.to_json
)
57 var ok
= [a1
.id
, a2
.id
]
58 var res
= game
.load_achievements
59 assert res
.length
== 2
60 for a
in res
.values
do assert ok
.has
(a
.id
)
66 super NitrpgTestHelper
68 fun test_add_achievement
do
69 var db
= load_db
("test_add_achievement")
70 var game
= load_game
("Morriar/nit", db
)
71 var player1
= new Player(game
, "Morriar")
72 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
73 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
74 player1
.add_achievement
(a1
)
75 player1
.add_achievement
(a2
)
76 assert player1
.load_achievements
.length
== 2
80 fun test_load_achievement
do
81 var db
= load_db
("test_load_achievement")
82 var game
= load_game
("Morriar/nit", db
)
83 var player1
= new Player(game
, "Morriar")
84 var player2
= new Player(game
, "xymus")
85 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
86 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
87 player1
.add_achievement
(a1
)
88 player2
.add_achievement
(a2
)
89 assert player1
.load_achievement
(a1
.id
).id
== "test_id1"
90 assert player1
.load_achievement
(a2
.id
) == null
91 assert player2
.load_achievement
(a2
.id
).id
== "test_id2"
92 assert player2
.load_achievement
(a1
.id
) == null
96 fun test_load_achievements
do
97 var db
= load_db
("test_load_achievements")
98 var game
= load_game
("Morriar/nit", db
)
99 var player1
= new Player(game
, "Morriar")
100 var player2
= new Player(game
, "xymus")
101 var a1
= new Achievement(game
, "test_id1", "test_name", "test_desc", 15)
102 var a2
= new Achievement(game
, "test_id2", "test_name", "test_desc", 15)
103 var a3
= new Achievement(game
, "test_id3", "test_name", "test_desc", 15)
104 player1
.add_achievement
(a1
)
105 player1
.add_achievement
(a2
)
106 player2
.add_achievement
(a3
)
107 var ok
= [a1
.id
, a2
.id
]
108 var res
= player1
.load_achievements
109 assert res
.length
== 2
110 for a
in res
.values
do assert ok
.has
(a
.id
)
115 class TestAchievement
116 super NitrpgTestHelper
119 var db
= load_db
("test_init")
120 var game
= load_game
("Morriar/nit", db
)
121 var a
= new Achievement(game
, "test_id", "test_name", "test_desc", 15)
122 assert a
.id
== "test_id"
123 assert a
.name
== "test_name"
124 assert a
.desc
== "test_desc"
125 assert a
.reward
== 15
129 fun test_init_from_json
do
130 var db
= load_db
("test_init_from_json")
131 var game
= load_game
("Morriar/nit", db
)
137 }""".parse_json
.as(JsonObject)
138 var a
= new Achievement.from_json
(game
, json
)
139 assert a
.id
== "test_id"
140 assert a
.name
== "test_name"
141 assert a
.desc
== "test_desc"
142 assert a
.reward
== 15