83f17bf48304a47d590c9119b83a7c8c4ca0a37c
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 `events.nit`
18 module test_events
is test_suite
24 super NitrpgTestHelper
27 var db
= load_db
("test_add_event")
28 var game
= load_game
("Morriar/nit", db
)
29 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
30 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
31 game
.add_event
(event1
)
32 game
.add_event
(event2
)
33 assert game
.load_events
.length
== 2
37 fun test_load_event
do
38 var db
= load_db
("test_load_event")
39 var game
= load_game
("Morriar/nit", db
)
40 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
41 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
42 game
.add_event
(event1
)
43 assert game
.load_event
(event1
.internal_id
).kind
== "test_kind"
44 assert game
.load_event
(event2
.internal_id
) == null
48 fun test_load_events
do
49 var db
= load_db
("test_load_events")
50 var game
= load_game
("Morriar/nit", db
)
51 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
52 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
53 var event3
= new GameEvent(game
, "test_kind", new JsonObject)
54 game
.add_event
(event1
)
55 game
.add_event
(event2
)
56 game
.db
.collection
("events").insert
(event3
.to_json
)
57 var ok
= [event1
.internal_id
, event2
.internal_id
]
58 var res
= game
.load_events
59 assert res
.length
== 2
60 for event
in res
do assert ok
.has
(event
.internal_id
)
66 super NitrpgTestHelper
69 var db
= load_db
("test_add_event")
70 var game
= load_game
("Morriar/nit", db
)
71 var player1
= new Player(game
, "Morriar")
72 var player2
= new Player(game
, "xymus")
73 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
74 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
75 player1
.add_event
(event1
)
76 player1
.add_event
(event2
)
77 assert player1
.load_events
.length
== 2
78 assert player2
.load_events
.length
== 0
82 fun test_load_event
do
83 var db
= load_db
("test_load_event")
84 var game
= load_game
("Morriar/nit", db
)
85 var player1
= new Player(game
, "Morriar")
86 var player2
= new Player(game
, "xymus")
87 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
88 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
89 player1
.add_event
(event1
)
90 player2
.add_event
(event2
)
91 assert player1
.load_event
(event1
.internal_id
).kind
== "test_kind"
92 assert player1
.load_event
(event2
.internal_id
) == null
93 assert player2
.load_event
(event2
.internal_id
).kind
== "test_kind"
94 assert player2
.load_event
(event1
.internal_id
) == null
98 fun test_load_events
do
99 var db
= load_db
("test_load_events")
100 var game
= load_game
("Morriar/nit", db
)
101 var player1
= new Player(game
, "Morriar")
102 var player2
= new Player(game
, "xymus")
103 var event1
= new GameEvent(game
, "test_kind", new JsonObject)
104 var event2
= new GameEvent(game
, "test_kind", new JsonObject)
105 var event3
= new GameEvent(game
, "test_kind", new JsonObject)
106 player1
.add_event
(event1
)
107 player1
.add_event
(event2
)
108 player2
.add_event
(event3
)
109 assert player1
.load_events
.length
== 2
110 assert player2
.load_events
.length
== 1
111 var ok
= [event1
.internal_id
, event2
.internal_id
]
112 for event
in player1
.load_events
do assert ok
.has
(event
.internal_id
)
118 super NitrpgTestHelper
121 var db
= load_db
("test_init")
122 var game
= load_game
("Morriar/nit", db
)
123 var event
= new GameEvent(game
, "test_kind", new JsonObject)
124 assert event
.to_json
["kind"] == "test_kind"
128 fun test_init_from_json
do
129 var db
= load_db
("test_init_from_json")
130 var game
= load_game
("Morriar/nit", db
)
132 "internal_id": "test_id",
134 "time": "2015-02-05T00:00:00Z",
135 "data": {"test_field": "test_value"}
136 }""".parse_json
.as(JsonObject)
137 var event
= new GameEvent.from_json
(game
, json
)
138 assert event
.internal_id
== "test_id"
139 assert event
.kind
== "test_kind"
140 assert event
.data
.to_json
== """{"test_field":"test_value"}"""
141 assert event
.time
.to_s
== "2015-02-05T00:00:00Z"