@@ -274,6 +274,29 @@ public void TestFetchingAllTheWayToFirstNeverDisplaysNegativePosition()
274274 AddUntilStep ( "all panels have non-negative position" , ( ) => this . ChildrenOfType < ScorePanel > ( ) . All ( p => p . ScorePosition . Value > 0 ) ) ;
275275 }
276276
277+ [ Test ]
278+ public void TestPresentInvalidOnlineScore ( )
279+ {
280+ AddStep ( "set up invalid user score" , ( ) =>
281+ {
282+ userScore . OnlineID = - 1 ;
283+ userScore . TotalScore = 0 ;
284+ } ) ;
285+
286+ AddStep ( "bind user score info handler" , ( ) => bindHandler ( userScore : userScore ) ) ;
287+
288+ createResultsWithScore ( ( ) => userScore ) ;
289+
290+ AddUntilStep ( "wait for user score to be displayed" , ( ) => resultsScreen . ChildrenOfType < ScorePanelList > ( ) . Single ( ) . GetScorePanels ( ) . Any ( ) ) ;
291+ AddWaitStep ( "wait for any more potential scores" , 5 ) ;
292+ AddAssert ( "only 1 score visible" , ( ) => resultsScreen . ChildrenOfType < ScorePanelList > ( ) . Single ( ) . GetScorePanels ( ) . Count ( ) , ( ) => Is . EqualTo ( 1 ) ) ;
293+
294+ AddUntilStep ( "left loading spinner hidden" , ( ) =>
295+ resultsScreen . ChildrenOfType < LoadingSpinner > ( ) . Single ( l => l . Anchor == Anchor . CentreLeft ) . State . Value == Visibility . Hidden ) ;
296+ AddUntilStep ( "right loading spinner hidden" , ( ) =>
297+ resultsScreen . ChildrenOfType < LoadingSpinner > ( ) . Single ( l => l . Anchor == Anchor . CentreRight ) . State . Value == Visibility . Hidden ) ;
298+ }
299+
277300 private void createResultsWithScore ( Func < ScoreInfo > getScore )
278301 {
279302 AddStep ( "load results" , ( ) =>
@@ -359,15 +382,15 @@ private void bindHandler(bool delayed = false, ScoreInfo? userScore = null, bool
359382 switch ( request )
360383 {
361384 case ShowPlaylistScoreRequest s :
362- if ( userScore == null )
385+ if ( userScore == null || userScore . OnlineID == - 1 )
363386 triggerFail ( s ) ;
364387 else
365388 triggerSuccess ( s , ( ) => createUserResponse ( userScore ) ) ;
366389
367390 break ;
368391
369392 case ShowPlaylistUserScoreRequest u :
370- if ( userScore == null )
393+ if ( userScore == null || userScore . OnlineID == - 1 )
371394 triggerFail ( u ) ;
372395 else
373396 triggerSuccess ( u , ( ) => createUserResponse ( userScore ) ) ;
0 commit comments