/ GUNRPG.Tests / OperatorNavigationHelperTests.cs
OperatorNavigationHelperTests.cs
1 using GUNRPG.ClientModels; 2 using GUNRPG.WebClient.Helpers; 3 4 namespace GUNRPG.Tests; 5 6 public sealed class OperatorNavigationHelperTests 7 { 8 [Fact] 9 public void GetRealtimeRoute_ReturnsNull_WhenOperatorIsNotOnMission() 10 { 11 var operatorState = new OperatorState 12 { 13 Id = Guid.NewGuid(), 14 CurrentMode = "Base" 15 }; 16 17 var route = OperatorNavigationHelper.GetRealtimeRoute(operatorState, operatorState.Id); 18 19 Assert.Null(route); 20 } 21 22 [Fact] 23 public void GetRealtimeRoute_ReturnsInfilRoute_WhenOperatorIsInfilWithoutActiveCombat() 24 { 25 var operatorId = Guid.NewGuid(); 26 var operatorState = new OperatorState 27 { 28 Id = operatorId, 29 CurrentMode = "Infil" 30 }; 31 32 var route = OperatorNavigationHelper.GetRealtimeRoute(operatorState, operatorId); 33 34 Assert.Equal($"missions/infil/{operatorId}", route); 35 } 36 37 [Fact] 38 public void GetRealtimeRoute_ReturnsCombatRoute_WhenOperatorHasActiveCombat() 39 { 40 var operatorId = Guid.NewGuid(); 41 var sessionId = Guid.NewGuid(); 42 var operatorState = new OperatorState 43 { 44 Id = operatorId, 45 CurrentMode = "Infil", 46 ActiveCombatSessionId = sessionId, 47 ActiveCombatSession = new CombatSession 48 { 49 Id = sessionId, 50 Phase = "Planning" 51 } 52 }; 53 54 var route = OperatorNavigationHelper.GetRealtimeRoute(operatorState, operatorId); 55 56 Assert.Equal($"missions/{sessionId}?operatorId={operatorId}", route); 57 } 58 59 [Fact] 60 public void GetRealtimeRoute_ReturnsCombatRoute_WhenActiveCombatSessionDetailsAreMissing() 61 { 62 var operatorId = Guid.NewGuid(); 63 var sessionId = Guid.NewGuid(); 64 var operatorState = new OperatorState 65 { 66 Id = operatorId, 67 CurrentMode = "Infil", 68 ActiveCombatSessionId = sessionId 69 }; 70 71 var route = OperatorNavigationHelper.GetRealtimeRoute(operatorState, operatorId); 72 73 Assert.Equal($"missions/{sessionId}?operatorId={operatorId}", route); 74 } 75 76 [Fact] 77 public void GetRealtimeRoute_ReturnsInfilRoute_WhenCombatSessionIsConcluded() 78 { 79 var operatorId = Guid.NewGuid(); 80 var sessionId = Guid.NewGuid(); 81 var operatorState = new OperatorState 82 { 83 Id = operatorId, 84 CurrentMode = "Infil", 85 ActiveCombatSessionId = sessionId, 86 ActiveCombatSession = new CombatSession 87 { 88 Id = sessionId, 89 Phase = "Completed" 90 } 91 }; 92 93 var route = OperatorNavigationHelper.GetRealtimeRoute(operatorState, operatorId); 94 95 Assert.Equal($"missions/infil/{operatorId}", route); 96 } 97 }