protected virtual void OnStateChanged(StateChange stateChange) { connectionState = stateChange.NewState; Console.WriteLine($"{stateChange.OldState} {stateChange.NewState}"); if (stateChange.NewState == ConnectionState.Disconnected) { if (reconnect) { Task.Delay(1000).ContinueWith((t) => hubConnection.Start()); } } StateChanged?.Invoke(stateChange); }
private void ChangedEventHandler(StateChange stateChange) { recentStateChange = stateChange; }
public void AgentInfo_CheckProperties() { EndPoint ep = new EndPoint("129.123.7.24:1345"); AgentInfo info = new AgentInfo(20, AgentInfo.PossibleAgentType.WhiningSpinner, ep) { ANumber = "A00001", FirstName = "Joe", LastName = "Jones", Location = new FieldLocation(10, 20, false), Strength = 1200.5, Speed = 1500.0, Points = 3332.42 }; Assert.AreEqual(20, info.Id); Assert.AreEqual(AgentInfo.PossibleAgentType.WhiningSpinner, info.AgentType); Assert.AreEqual("A00001", info.ANumber); Assert.AreEqual("Joe", info.FirstName); Assert.AreEqual("Jones", info.LastName); Assert.AreEqual(1200.5, info.Strength); Assert.AreEqual(1500.0, info.Speed); Assert.AreEqual(3332.42, info.Points); Assert.AreEqual(10, info.Location.X); Assert.AreEqual(20, info.Location.Y); Assert.AreSame(ep, info.CommunicationEndPoint); info.Changed += ChangedEventHandler; // Id Property recentStateChange = null; info.Id = 1002; Assert.AreEqual(1002, info.Id); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); recentStateChange = null; info.Id = 0; Assert.AreEqual(0, info.Id); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); info.Id = Int16.MaxValue; Assert.AreEqual(Int16.MaxValue, info.Id); info.Id = 10; Assert.AreEqual(10, info.Id); // AgentType recentStateChange = null; info.AgentType = AgentInfo.PossibleAgentType.BrilliantStudent; Assert.AreEqual(AgentInfo.PossibleAgentType.BrilliantStudent, info.AgentType); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); // Status info.AgentStatus = AgentInfo.PossibleAgentStatus.InGame; Assert.AreEqual(AgentInfo.PossibleAgentStatus.InGame, info.AgentStatus); info.AgentStatus = AgentInfo.PossibleAgentStatus.TryingToJoin; Assert.AreEqual(AgentInfo.PossibleAgentStatus.TryingToJoin, info.AgentStatus); info.AgentStatus = AgentInfo.PossibleAgentStatus.WonGame; Assert.AreEqual(AgentInfo.PossibleAgentStatus.WonGame, info.AgentStatus); // ANumber recentStateChange = null; info.ANumber = "A000234"; Assert.AreEqual("A000234", info.ANumber); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); info.ANumber = null; Assert.IsNull(info.ANumber); info.ANumber = "A012345"; Assert.AreEqual("A012345", info.ANumber); // FirstName recentStateChange = null; info.FirstName = "Henry"; Assert.AreEqual("Henry", info.FirstName); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); info.FirstName = null; Assert.IsNull(info.FirstName); info.FirstName = "John"; Assert.AreEqual("John", info.FirstName); // LastName recentStateChange = null; info.LastName = "Franks"; Assert.AreEqual("Franks", info.LastName); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); info.LastName = null; Assert.IsNull(info.LastName); info.LastName = "Jones"; Assert.AreEqual("Jones", info.LastName); // Strength recentStateChange = null; info.Strength = 123.45; Assert.AreEqual(123.45, info.Strength); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); // Speed recentStateChange = null; info.Speed = 23.456; Assert.AreEqual(23.456, info.Speed); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); // Speed recentStateChange = null; info.Points = 53.6; Assert.AreEqual(53.6, info.Points); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); // Location recentStateChange = null; FieldLocation f = new FieldLocation(10, 20); info.Location = f; Assert.AreSame(f, info.Location); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); // CommunicationEndPoint recentStateChange = null; EndPoint ep1 = new EndPoint(3242, 1000); info.CommunicationEndPoint = ep1; Assert.AreSame(ep1, info.CommunicationEndPoint); Assert.IsNotNull(recentStateChange); Assert.AreEqual(recentStateChange.Type, StateChange.ChangeType.UPDATE); Assert.AreSame(info, recentStateChange.Subject); }