@@ -41,12 +41,16 @@ public void Setup()
4141 public async Task TestAreInFrontier ( )
4242 {
4343 var wordNotInFrontier = await _wordRepo . Add ( Util . RandomWord ( ProjId ) ) ;
44- var emptyResult = await _wordController . AreInFrontier ( ProjId , [ wordNotInFrontier . Id , "non-id" ] ) ;
45- Assert . That ( ( ( ObjectResult ) emptyResult ) . Value , Is . Empty ) ;
44+ var emptyResult = await _wordController . AreInFrontier ( ProjId , [ wordNotInFrontier . Id , "non-id" ] )
45+ as OkObjectResult ;
46+ Assert . That ( emptyResult , Is . Not . Null ) ;
47+ Assert . That ( emptyResult . Value , Is . Empty ) ;
4648
4749 var wordInFrontier = await _wordRepo . AddFrontier ( Util . RandomWord ( ProjId ) ) ;
48- var nonemptyResult = await _wordController . AreInFrontier ( ProjId , [ wordInFrontier . Id , "non-id" ] ) ;
49- Assert . That ( ( ( OkObjectResult ) nonemptyResult ) . Value , Is . EqualTo ( new List < string > { wordInFrontier . Id } ) ) ;
50+ var nonemptyResult = await _wordController . AreInFrontier ( ProjId , [ wordInFrontier . Id , "non-id" ] )
51+ as OkObjectResult ;
52+ Assert . That ( nonemptyResult , Is . Not . Null ) ;
53+ Assert . That ( nonemptyResult . Value , Is . EqualTo ( new List < string > { wordInFrontier . Id } ) ) ;
5054 }
5155
5256 [ Test ]
@@ -93,15 +97,23 @@ public async Task TestDeleteFrontierWordMissingWord()
9397 }
9498
9599 [ Test ]
96- public async Task TestHasFrontierWords ( )
100+ public async Task TestHasFrontierWordsReturnsFalse ( )
97101 {
98102 await _wordRepo . Create ( Util . RandomWord ( "OTHER_PROJECT" ) ) ;
99- var falseResult = ( ObjectResult ) await _wordController . HasFrontierWords ( ProjId ) ;
100- Assert . That ( falseResult . Value , Is . False ) ;
101103
104+ var result = await _wordController . HasFrontierWords ( ProjId ) as OkObjectResult ;
105+ Assert . That ( result , Is . Not . Null ) ;
106+ Assert . That ( result . Value , Is . False ) ;
107+ }
108+
109+ [ Test ]
110+ public async Task TestHasFrontierWordsReturnsTrue ( )
111+ {
102112 await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
103- var trueResult = ( ObjectResult ) await _wordController . HasFrontierWords ( ProjId ) ;
104- Assert . That ( trueResult . Value , Is . True ) ;
113+
114+ var result = await _wordController . HasFrontierWords ( ProjId ) as OkObjectResult ;
115+ Assert . That ( result , Is . Not . Null ) ;
116+ Assert . That ( result . Value , Is . True ) ;
105117 }
106118
107119 [ Test ]
@@ -113,15 +125,21 @@ public async Task TestHasFrontierWordsNoPermission()
113125 }
114126
115127 [ Test ]
116- public async Task TestIsInFrontier ( )
128+ public async Task TestIsInFrontierReturnsFalse ( )
117129 {
118130 var wordNotInFrontier = await _wordRepo . Add ( Util . RandomWord ( ProjId ) ) ;
119- var falseResult = ( ObjectResult ) await _wordController . IsInFrontier ( ProjId , wordNotInFrontier . Id ) ;
120- Assert . That ( falseResult . Value , Is . False ) ;
131+ var result = await _wordController . IsInFrontier ( ProjId , wordNotInFrontier . Id ) as OkObjectResult ;
132+ Assert . That ( result , Is . Not . Null ) ;
133+ Assert . That ( result . Value , Is . False ) ;
134+ }
121135
136+ [ Test ]
137+ public async Task TestIsInFrontierReturnsTrue ( )
138+ {
122139 var wordInFrontier = await _wordRepo . AddFrontier ( Util . RandomWord ( ProjId ) ) ;
123- var trueResult = ( ObjectResult ) await _wordController . IsInFrontier ( ProjId , wordInFrontier . Id ) ;
124- Assert . That ( trueResult . Value , Is . True ) ;
140+ var result = await _wordController . IsInFrontier ( ProjId , wordInFrontier . Id ) as OkObjectResult ;
141+ Assert . That ( result , Is . Not . Null ) ;
142+ Assert . That ( result . Value , Is . True ) ;
125143 }
126144
127145 [ Test ]
@@ -140,7 +158,9 @@ public async Task TestGetFrontierCount()
140158 await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
141159 await _wordRepo . Create ( Util . RandomWord ( "OTHER_PROJECT" ) ) ;
142160
143- var count = ( int ) ( ( ObjectResult ) await _wordController . GetFrontierCount ( ProjId ) ) . Value ! ;
161+ var countResult = await _wordController . GetFrontierCount ( ProjId ) as OkObjectResult ;
162+ Assert . That ( countResult , Is . Not . Null ) ;
163+ var count = countResult . Value as int ? ;
144164 Assert . That ( count , Is . EqualTo ( 2 ) ) ;
145165 }
146166
@@ -159,7 +179,10 @@ public async Task TestGetFrontier()
159179 var inWord2 = await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
160180 await _wordRepo . Create ( Util . RandomWord ( "OTHER_PROJECT" ) ) ;
161181
162- var frontier = ( List < Word > ) ( ( ObjectResult ) await _wordController . GetProjectFrontierWords ( ProjId ) ) . Value ! ;
182+ var result = await _wordController . GetProjectFrontierWords ( ProjId ) as OkObjectResult ;
183+ Assert . That ( result , Is . Not . Null ) ;
184+ var frontier = result . Value as List < Word > ;
185+ Assert . That ( frontier , Is . Not . Null ) ;
163186 Assert . That ( frontier , Has . Count . EqualTo ( 2 ) ) ;
164187 Assert . That ( frontier , Does . Contain ( inWord1 ) . UsingPropertiesComparer ( ) ) ;
165188 Assert . That ( frontier , Does . Contain ( inWord2 ) . UsingPropertiesComparer ( ) ) ;
@@ -181,9 +204,9 @@ public async Task TestGetWord()
181204 await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
182205 await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
183206
184- var result = await _wordController . GetWord ( ProjId , word . Id ) ;
185- Assert . That ( result , Is . InstanceOf < ObjectResult > ( ) ) ;
186- Assert . That ( ( ( ObjectResult ) result ) . Value , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
207+ var result = await _wordController . GetWord ( ProjId , word . Id ) as OkObjectResult ;
208+ Assert . That ( result , Is . Not . Null ) ;
209+ Assert . That ( result . Value , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
187210 }
188211
189212 [ Test ]
@@ -207,18 +230,18 @@ public async Task TestGetWordNoPermission()
207230 public async Task TestGetDuplicateId ( )
208231 {
209232 var word = await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
210- var result = await _wordController . GetDuplicateId ( ProjId , word ) ;
211- Assert . That ( result , Is . InstanceOf < ObjectResult > ( ) ) ;
212- Assert . That ( ( ( ObjectResult ) result ) . Value , Is . EqualTo ( word . Id ) ) ;
233+ var result = await _wordController . GetDuplicateId ( ProjId , word ) as OkObjectResult ;
234+ Assert . That ( result , Is . Not . Null ) ;
235+ Assert . That ( result . Value , Is . EqualTo ( word . Id ) ) ;
213236 }
214237
215238 [ Test ]
216239 public async Task TestGetDuplicateIdNoneFound ( )
217240 {
218241 var word = Util . RandomWord ( ProjId ) ;
219- var result = await _wordController . GetDuplicateId ( ProjId , word ) ;
220- Assert . That ( result , Is . InstanceOf < ObjectResult > ( ) ) ;
221- Assert . That ( ( ( ObjectResult ) result ) . Value , Is . EqualTo ( "" ) ) ;
242+ var result = await _wordController . GetDuplicateId ( ProjId , word ) as OkObjectResult ;
243+ Assert . That ( result , Is . Not . Null ) ;
244+ Assert . That ( result . Value , Is . EqualTo ( "" ) ) ;
222245 }
223246
224247 [ Test ]
@@ -245,8 +268,10 @@ public async Task TestRevertWords()
245268 [ "non-id" ] = frontierWord1 . Id , // Cannot revert with key not a word
246269 [ nonFrontierWord1 . Id ] = nonFrontierWord2 . Id , // Cannot revert with value not in frontier
247270 [ nonFrontierWord0 . Id ] = frontierWord0 . Id , // Can revert
248- } ) ;
249- var reverted = ( Dictionary < string , string > ) ( ( OkObjectResult ) result ) . Value ! ;
271+ } ) as OkObjectResult ;
272+ Assert . That ( result , Is . Not . Null ) ;
273+ var reverted = result . Value as Dictionary < string , string > ;
274+ Assert . That ( reverted , Is . Not . Null ) ;
250275 Assert . That ( reverted , Has . Count . EqualTo ( 1 ) ) ;
251276 var frontierIds = ( await _wordRepo . GetAllFrontier ( ProjId ) ) . Select ( w => w . Id ) . ToList ( ) ;
252277 Assert . That ( frontierIds , Has . Count . EqualTo ( 2 ) ) ;
@@ -272,10 +297,14 @@ public async Task TestUpdateDuplicate()
272297 var dupWord = origWord . Clone ( ) ;
273298 dupWord . Flag = new Flag ( "New Flag" ) ;
274299 var expectedWord = dupWord . Clone ( ) ;
275- var result = ( ObjectResult ) await _wordController . UpdateDuplicate ( ProjId , origWord . Id , dupWord ) ;
276- var id = ( string ) result . Value ! ;
300+
301+ var result = await _wordController . UpdateDuplicate ( ProjId , origWord . Id , dupWord ) as OkObjectResult ;
302+ Assert . That ( result , Is . Not . Null ) ;
303+ var id = result . Value as string ;
304+ Assert . That ( id , Is . Not . Null ) ;
277305 var updatedWord = await _wordRepo . GetWord ( ProjId , id ) ;
278- Util . AssertEqualWordContent ( updatedWord ! , expectedWord , true ) ;
306+ Assert . That ( updatedWord , Is . Not . Null ) ;
307+ Util . AssertEqualWordContent ( updatedWord , expectedWord , true ) ;
279308 }
280309
281310 [ Test ]
@@ -311,14 +340,17 @@ public async Task TestCreateWord()
311340 {
312341 var word = Util . RandomWord ( ProjId ) ;
313342
314- var id = ( string ) ( ( ObjectResult ) await _wordController . CreateWord ( ProjId , word ) ) . Value ! ;
343+ var result = await _wordController . CreateWord ( ProjId , word ) as OkObjectResult ;
344+ Assert . That ( result , Is . Not . Null ) ;
345+ var id = result . Value as string ;
346+ Assert . That ( id , Is . Not . Null ) ;
315347 word . Id = id ;
316348
317349 var allWords = await _wordRepo . GetAllWords ( ProjId ) ;
318- Assert . That ( allWords [ 0 ] , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
350+ Assert . That ( allWords . FirstOrDefault ( ) , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
319351
320352 var frontier = await _wordRepo . GetAllFrontier ( ProjId ) ;
321- Assert . That ( frontier [ 0 ] , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
353+ Assert . That ( frontier . FirstOrDefault ( ) , Is . EqualTo ( word ) . UsingPropertiesComparer ( ) ) ;
322354 }
323355
324356 [ Test ]
@@ -339,12 +371,14 @@ public async Task TestUpdateWord()
339371 var modWord = origWord . Clone ( ) ;
340372 modWord . Vernacular = "NewVernacular" ;
341373
342- var id = ( string ) ( ( ObjectResult ) await _wordController . UpdateWord (
343- ProjId , modWord . Id , modWord ) ) . Value ! ;
374+ var result = await _wordController . UpdateWord ( ProjId , modWord . Id , modWord ) as OkObjectResult ;
375+ Assert . That ( result , Is . Not . Null ) ;
376+ var id = result . Value as string ;
377+ Assert . That ( id , Is . Not . Null ) ;
344378
345379 var finalWord = modWord . Clone ( ) ;
346380 finalWord . Id = id ;
347- finalWord . History = new List < string > { origWord . Id } ;
381+ finalWord . History = [ origWord . Id ] ;
348382
349383 var allWords = await _wordRepo . GetAllWords ( ProjId ) ;
350384 Assert . That ( allWords , Does . Contain ( origWord ) . UsingPropertiesComparer ( ) ) ;
@@ -383,12 +417,26 @@ public async Task TestRestoreWord()
383417 Assert . That ( await _wordRepo . GetAllWords ( ProjId ) , Does . Contain ( word ) . UsingPropertiesComparer ( ) ) ;
384418 Assert . That ( await _wordRepo . GetAllFrontier ( ProjId ) , Is . Empty ) ;
385419
386- var result = await _wordController . RestoreWord ( ProjId , word . Id ) ;
420+ var result = await _wordController . RestoreWord ( ProjId , word . Id ) as OkObjectResult ;
421+ Assert . That ( result , Is . Not . Null ) ;
422+ Assert . That ( result . Value , Is . True ) ;
423+ Assert . That ( await _wordRepo . GetAllWords ( ProjId ) , Does . Contain ( word ) . UsingPropertiesComparer ( ) ) ;
424+ Assert . That ( await _wordRepo . GetAllFrontier ( ProjId ) , Does . Contain ( word ) . UsingPropertiesComparer ( ) ) ;
425+ }
426+
427+ [ Test ]
428+ public async Task TestRestoreWordAlreadyInFrontier ( )
429+ {
430+ var word = await _wordRepo . Create ( Util . RandomWord ( ProjId ) ) ;
387431
388- Assert . That ( result , Is . InstanceOf < OkObjectResult > ( ) ) ;
389- Assert . That ( ( ( OkObjectResult ) result ) . Value , Is . True ) ;
390432 Assert . That ( await _wordRepo . GetAllWords ( ProjId ) , Does . Contain ( word ) . UsingPropertiesComparer ( ) ) ;
391433 Assert . That ( await _wordRepo . GetAllFrontier ( ProjId ) , Does . Contain ( word ) . UsingPropertiesComparer ( ) ) ;
434+ var frontierCount = await _wordRepo . GetFrontierCount ( ProjId ) ;
435+
436+ var result = await _wordController . RestoreWord ( ProjId , word . Id ) as OkObjectResult ;
437+ Assert . That ( result , Is . Not . Null ) ;
438+ Assert . That ( result . Value , Is . False ) ;
439+ Assert . That ( await _wordRepo . GetFrontierCount ( ProjId ) , Is . EqualTo ( frontierCount ) ) ;
392440 }
393441
394442 [ Test ]
0 commit comments