/ 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  }