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 `game.nit`.
18 module test_game
is test
23 super NitrpgTestHelper
26 fun test_add_player
is test
do
28 var game
= load_game
("privat/nit", db
)
29 var users
= ["Morriar", "xymus"]
31 game
.add_player
(game
.api
.load_user
(name
).as(not null))
33 var res
= game
.load_players
.values
34 assert res
.length
== 2
36 assert users
.has
(player
.name
)
40 fun test_load_player
is test
do
42 var game
= load_game
("privat/nit", db
)
43 var ogame
= load_game
("Morriar/nit", db
)
45 var player1
= new Player(game
, "Morriar")
46 var player2
= new Player(ogame
, "privat")
47 game
.db
.collection
("players").insert
(player1
.to_json_object
)
48 ogame
.db
.collection
("players").insert
(player2
.to_json_object
)
50 assert game
.load_player
("privat") == null
51 assert game
.load_player
("Morriar").name
== "Morriar"
52 assert ogame
.load_player
("privat").name
== "privat"
53 assert ogame
.load_player
("Morriar") == null
56 fun test_load_players
is test
do
58 var game
= load_game
("privat/nit", db
)
59 var ogame
= load_game
("Morriar/nit", db
)
61 var player1
= new Player(game
, "Morriar")
62 var player2
= new Player(ogame
, "privat")
63 var player3
= new Player(game
, "xymus")
64 game
.db
.collection
("players").insert
(player1
.to_json_object
)
65 ogame
.db
.collection
("players").insert
(player2
.to_json_object
)
66 game
.db
.collection
("players").insert
(player3
.to_json_object
)
68 var players
= game
.load_players
69 var ok
= ["Morriar", "xymus"]
70 for player
in players
.values
do assert ok
.has
(player
.name
)
75 super NitrpgTestHelper
78 fun test_init
is test
do
80 var game
= load_game
("privat/nit", db
)
81 var player
= new Player(game
, "Morriar")
82 assert player
.name
== "Morriar"
83 assert player
.user
.login
== "Morriar"
84 assert player
.nitcoins
== 0
87 fun test_init_from_json
is test
do
89 var game
= load_game
("privat/nit", db
)
90 var json
= """{"name": "Morriar", "nitcoins": 10}""".parse_json
91 var player
= new Player.from_json
(game
, json
.as(JsonObject))
92 assert player
.name
== "Morriar"
93 assert player
.user
.login
== "Morriar"
94 assert player
.nitcoins
== 10
97 fun test_save
is test
do
99 var game
= load_game
("privat/nit", db
)
100 var json
= """{"name": "Morriar", "nitcoins": 10}""".parse_json
.as(JsonObject)
101 var player
= new Player.from_json
(game
, json
)
103 assert game
.db
.collection
("players").find
(json
) != null
106 fun test_game_add_player
is test
do
108 var game
= load_game
("privat/nit", db
)
109 game
.add_player
(game
.api
.load_user
("Morriar").as(not null))
110 var json
= """{"name": "Morriar"}""".parse_json
.as(JsonObject)
111 assert game
.db
.collection
("players").find
(json
) != null
114 fun test_game_load_player
is test
do
116 var game
= load_game
("privat/nit", db
)
117 var json
= """{"name": "Morriar", "nitcoins": 10}""".parse_json
.as(JsonObject)
118 var player
= new Player.from_json
(game
, json
)
120 var oplayer
= game
.load_player
("Morriar")
121 assert oplayer
!= null
122 assert player
.nitcoins
== oplayer
.nitcoins
127 super NitrpgTestHelper
130 fun test_player
is test
do
132 var api
= new GithubAPI(get_github_oauth
)
133 var game
= load_game
("privat/nit", db
)
134 var user
= api
.load_user
("Morriar")
136 var player
= user
.player
(game
)
137 assert player
.name
== "Morriar"