public void EmptyElementDataChangedNotification() { ElementList <AvailableElementData> elementList = null; RTPISDataStoreEventArgs eventArgs = new RTPISDataStoreEventArgs("DummyMission", null); this._rtpisDataStore.Raise(m => m.Changed -= null, eventArgs); this._train2groundClientMock.Verify(foo => foo.GetAvailableElementDataListByMissionCode(It.IsAny <string>(), out elementList), Times.Once()); }
public void MissionChangedNotificationMultipleElements() { int numberOfElements = 10; ElementList <AvailableElementData> elementList = new ElementList <AvailableElementData>(); System.Collections.Generic.List <TrainServerSimulator.RealTimeTrainService> trainList = new System.Collections.Generic.List <TrainServerSimulator.RealTimeTrainService>(); trainList.Capacity = numberOfElements; System.Collections.Generic.List <ServiceInfo> serviceInfoList = new System.Collections.Generic.List <ServiceInfo>(); try { string missionCode = "Mission1"; for (int i = 0; i < numberOfElements; i++) { elementList.Add(new AvailableElementData() { ElementNumber = "Train" + i, MissionCommercialNumber = "Mission" + i, MissionOperatorCode = "Mission" + i + "Seg" + i, MissionState = MissionStateEnum.MI, OnlineStatus = true, PisBasicPackageVersion = "1.0.0.0", LmtPackageVersion = "1.0.0.0", PisBaselineData = new PisBaseline() { FutureVersionPisInfotainmentOut = "1.0.0.0", FutureVersionLmtOut = "1.0.0.0", FutureActivationDateOut = "1.0.0.0", FutureExpirationDateOut = "1.0.0.0", FutureValidOut = "1.0.0.0", FutureVersionOut = "1.0.0.0", FutureVersionPisBaseOut = "1.0.0.0", FutureVersionPisMissionOut = "1.0.0.0", CurrentVersionLmtOut = "1.0.0.0", CurrentExpirationDateOut = "1.0.0.0", CurrentVersionPisMissionOut = "1.0.0.0", CurrentVersionPisInfotainmentOut = "1.0.0.0", CurrentVersionOut = "1.0.0.0", CurrentVersionPisBaseOut = "1.0.0.0", CurrentForcedOut = "1.0.0.0", CurrentValidOut = "1.0.0.0", ArchivedValidOut = "1.0.0.0", ArchivedVersionOut = "1.0.0.0", ArchivedVersionPisBaseOut = "1.0.0.0", ArchivedVersionPisMissionOut = "1.0.0.0", ArchivedVersionPisInfotainmentOut = "1.0.0.0", ArchivedVersionLmtOut = "1.0.0.0" } }); string systemId = "Train" + i; ServiceInfo serviceInfo = new ServiceInfo( (ushort)eServiceID.eSrvSIF_RealTimeServer, "RealTimeServer", (ushort)i, (ushort)i, true, "localhost", "1908", "1908", (ushort)(65000 + i)); serviceInfoList.Add(serviceInfo); TrainServerSimulator.RealTimeTrainService train = new TrainServerSimulator.RealTimeTrainService(serviceInfo.ServiceIPAddress, serviceInfo.ServicePortNumber); trainList.Add(train); train.ExpectedMissionCode = missionCode; train.Start(); this._train2groundClientMock.Setup(foo => foo.GetAvailableServiceData(systemId, (int)eServiceID.eSrvSIF_RealTimeServer, out serviceInfo)); } RTPISDataStoreEventArgs eventArgs = new RTPISDataStoreEventArgs(missionCode, null); RealTimeInformationType newRealTimeInformationType = new RealTimeInformationType(); this._rtpisDataStore.Setup(foo => foo.GetMissionRealTimeInformation(missionCode)).Returns(newRealTimeInformationType); this._train2groundClientMock.Setup(foo => foo.GetAvailableElementDataListByMissionCode(missionCode, out elementList)); try { this._rtpisDataStore.Raise(m => m.Changed -= null, eventArgs); } finally { for (int i = 0; i < numberOfElements && i < trainList.Count; i++) { trainList[i].Stop(); } } this._train2groundClientMock.Verify(foo => foo.GetAvailableElementDataListByMissionCode(missionCode, out elementList), Times.Once()); for (int i = 0; i < numberOfElements; i++) { ServiceInfo serviceInfo = serviceInfoList[i]; Assert.IsNotNull(trainList[i].LastMissionRealTimeRequest, "RealTime mission information not updated on train {0}.", i); this._train2groundClientMock.Verify(foo => foo.GetAvailableServiceData("Train" + i, (int)eServiceID.eSrvSIF_RealTimeServer, out serviceInfo), Times.Once()); } } finally { foreach (var train in trainList) { train.Dispose(); } } }