1
1
using NetAF . Assets ;
2
2
using NetAF . Assets . Locations ;
3
3
using Microsoft . VisualStudio . TestTools . UnitTesting ;
4
+ using NetAF . Commands ;
4
5
5
6
namespace NetAF . Tests . Assets . Locations
6
7
{
@@ -21,6 +22,7 @@ public void Given1Room_WhenGetCurrentRoom_ThenNotNull()
21
22
var room1 = new Room ( Identifier . Empty , Description . Empty ) ;
22
23
var region = new Region ( string . Empty , string . Empty ) ;
23
24
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
25
+ region . Enter ( ) ;
24
26
25
27
Assert . IsNotNull ( region . CurrentRoom ) ;
26
28
}
@@ -36,6 +38,7 @@ public void Given3Rooms_WhenGetCurrentRoom_ThenFirstRoom()
36
38
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
37
39
region . AddRoom ( room2 , 0 , 1 , 0 ) ;
38
40
region . AddRoom ( room3 , 1 , 0 , 0 ) ;
41
+ region . Enter ( ) ;
39
42
40
43
Assert . AreEqual ( room1 , region . CurrentRoom ) ;
41
44
}
@@ -53,6 +56,7 @@ public void GivenX1Y1_WhenSetStartRoom_ThenLastRoom()
53
56
region . AddRoom ( room3 , 1 , 1 , 0 ) ;
54
57
55
58
region . SetStartRoom ( 1 , 1 , 0 ) ;
59
+ region . Enter ( ) ;
56
60
57
61
Assert . AreEqual ( room3 , region . CurrentRoom ) ;
58
62
}
@@ -119,6 +123,7 @@ public void Given1Room_WhenAdding1Room_Then2Rooms()
119
123
var region = new Region ( string . Empty , string . Empty ) ;
120
124
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
121
125
region . AddRoom ( room2 , 0 , 1 , 0 ) ;
126
+ region . Enter ( ) ;
122
127
123
128
Assert . AreEqual ( 2 , region . Rooms ) ;
124
129
}
@@ -134,6 +139,7 @@ public void GivenLastRoom_WhenSetStartRoom_ThenCurrentRoomIsLastRoom()
134
139
region . AddRoom ( room2 , 0 , 1 , 0 ) ;
135
140
136
141
region . SetStartRoom ( room2 ) ;
142
+ region . Enter ( ) ;
137
143
138
144
Assert . AreEqual ( room2 , region . CurrentRoom ) ;
139
145
}
@@ -147,6 +153,7 @@ public void GivenCanMove_WhenMove_ThenTrue()
147
153
var region = new Region ( string . Empty , string . Empty ) ;
148
154
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
149
155
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
156
+ region . Enter ( ) ;
150
157
151
158
var result = region . Move ( Direction . East ) ;
152
159
@@ -162,6 +169,7 @@ public void GivenCantMove_WhenMove_ThenFalse()
162
169
var region = new Region ( string . Empty , string . Empty ) ;
163
170
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
164
171
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
172
+ region . Enter ( ) ;
165
173
166
174
var result = region . Move ( Direction . West ) ;
167
175
@@ -177,6 +185,7 @@ public void GivenCanMove_WhenMove_ThenCurrentRoomIsNewRoom()
177
185
var region = new Region ( string . Empty , string . Empty ) ;
178
186
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
179
187
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
188
+ region . Enter ( ) ;
180
189
181
190
region . Move ( Direction . East ) ;
182
191
@@ -192,6 +201,7 @@ public void GivenCantMove_WhenMove_ThenCurrentRoomIsNotChanged()
192
201
var region = new Region ( string . Empty , string . Empty ) ;
193
202
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
194
203
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
204
+ region . Enter ( ) ;
195
205
196
206
region . Move ( Direction . West ) ;
197
207
@@ -222,6 +232,7 @@ public void GivenAdjoiningRoom_WhenGetAdjoiningRoom_ThenNotNull()
222
232
var region = new Region ( string . Empty , string . Empty ) ;
223
233
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
224
234
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
235
+ region . Enter ( ) ;
225
236
226
237
var result = region . GetAdjoiningRoom ( Direction . East , region . CurrentRoom ) ;
227
238
@@ -237,6 +248,7 @@ public void Given2LockedDoors_WhenUnlockDoorPair_ThenTrue()
237
248
var region = new Region ( string . Empty , string . Empty ) ;
238
249
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
239
250
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
251
+ region . Enter ( ) ;
240
252
241
253
var result = region . UnlockDoorPair ( Direction . East ) ;
242
254
@@ -252,6 +264,7 @@ public void Given2LockedDoors_WhenUnlockDoorPair_ThenBothDoorsUnlocked()
252
264
var region = new Region ( string . Empty , string . Empty ) ;
253
265
region . AddRoom ( room1 , 0 , 0 , 0 ) ;
254
266
region . AddRoom ( room2 , 1 , 0 , 0 ) ;
267
+ region . Enter ( ) ;
255
268
256
269
room1 . FindExit ( Direction . East , true , out var room1Exit ) ;
257
270
room2 . FindExit ( Direction . West , true , out var room2Exit ) ;
@@ -422,5 +435,67 @@ public void GivenValidCoordinates_WhenJumpToRoom_ThenReturnTrue()
422
435
423
436
Assert . IsTrue ( result ) ;
424
437
}
438
+
439
+ [ TestMethod ]
440
+ public void GivenCurrentRoomNull_WhenEnter_ThenCurrentRoomNotNull ( )
441
+ {
442
+ var region = new Region ( string . Empty , string . Empty ) ;
443
+ var room = new Room ( string . Empty , string . Empty ) ;
444
+ region . AddRoom ( room , 0 , 0 , 0 ) ;
445
+ region . SetStartRoom ( room ) ;
446
+
447
+ region . Enter ( ) ;
448
+
449
+ Assert . IsNotNull ( region . CurrentRoom ) ;
450
+ }
451
+
452
+ [ TestMethod ]
453
+ public void GivenCurrentRoomNullAndStartRoomHasNoIntroduction_WhenEnter_ThenSilentReaction ( )
454
+ {
455
+ var region = new Region ( string . Empty , string . Empty ) ;
456
+ var room = new Room ( string . Empty , string . Empty ) ;
457
+ region . AddRoom ( room , 0 , 0 , 0 ) ;
458
+ region . SetStartRoom ( room ) ;
459
+
460
+ var result = region . Enter ( ) ;
461
+
462
+ Assert . AreEqual ( ReactionResult . Silent , result . Result ) ;
463
+ }
464
+
465
+ [ TestMethod ]
466
+ public void GivenCurrentRoomNullAndStartRoomHasNoIntroduction_WhenEnter_ThenInformReaction ( )
467
+ {
468
+ var region = new Region ( string . Empty , string . Empty ) ;
469
+ var room = new Room ( string . Empty , string . Empty , "ABC" ) ;
470
+ region . AddRoom ( room , 0 , 0 , 0 ) ;
471
+ region . SetStartRoom ( room ) ;
472
+
473
+ var result = region . Enter ( ) ;
474
+
475
+ Assert . AreEqual ( ReactionResult . Inform , result . Result ) ;
476
+ }
477
+
478
+ [ TestMethod ]
479
+ public void GivenCurrentRoomNullAndNoStartRoomAssigned_WhenEnter_ThenCurrentRoomIsFirstRoom ( )
480
+ {
481
+ var region = new Region ( string . Empty , string . Empty ) ;
482
+ var room = new Room ( string . Empty , string . Empty ) ;
483
+ region . AddRoom ( room , 0 , 0 , 0 ) ;
484
+
485
+ region . Enter ( ) ;
486
+
487
+ Assert . AreEqual ( room , region . CurrentRoom ) ;
488
+ }
489
+
490
+ [ TestMethod ]
491
+ public void GivenCurrentRoomNullAndNoRooms_WhenEnter_ThenCurrentRoomIsNull ( )
492
+ {
493
+ var region = new Region ( string . Empty , string . Empty ) ;
494
+ var room = new Room ( string . Empty , string . Empty ) ;
495
+
496
+ region . Enter ( ) ;
497
+
498
+ Assert . IsNull ( region . CurrentRoom ) ;
499
+ }
425
500
}
426
501
}
0 commit comments