/// <summary> /// Add a know train in T2G and might initialize the data-package embedded service. /// </summary> /// <param name="trainId">The train identifier.</param> /// <param name="vehicleId">The vehicle identifier.</param> /// <param name="isOnline">Indicates the initiale online status of the train.</param> /// <param name="ipAddress">The ip address of the train.</param> /// <param name="dataPackagePort">The data package port.</param> /// <param name="communicationLink">The communication link.</param> /// <param name="initializeEmbeddedService">Indicates if the embedded data-package service shall be initialized.</param> /// <param name="currentBaseline">The current baseline version.</param> /// <exception cref="NotImplementedException">Support to multiple train need to be implemented if needed.</exception> protected void InitializeTrain(string trainId, int vehicleId, bool isOnline, string ipAddress, ushort dataPackagePort, CommLinkEnum communicationLink, bool initializeEmbeddedService, string currentBaseline) { _identificationServiceStub.UpdateSystem(trainId, vehicleId, isOnline, 0, DEFAULT_MISSION, communicationLink, ipAddress); _vehicleInfoServiceStub.UpdateMessageData(new VersionMessage(trainId, DEFAULT_PIS_VERSION)); BaselineMessage baseline = new BaselineMessage(trainId); baseline.CurrentVersion = currentBaseline; _vehicleInfoServiceStub.UpdateMessageData(baseline); MissionMessage mission = new MissionMessage(trainId, DEFAULT_MISSION, (string.IsNullOrEmpty(DEFAULT_MISSION)) ? "NI" : "MI", DEFAULT_OPERATOR_CODE); _vehicleInfoServiceStub.UpdateMessageData(mission); ServiceInfoData datapackageService = new ServiceInfoData((ushort)eServiceID.eSrvSIF_DataPackageServer, SERVICE_NAME_DATA_PACKAGE, isOnline && initializeEmbeddedService, ipAddress, dataPackagePort, (ushort)vehicleId, DEFAULT_CAR_ID); _vehicleInfoServiceStub.UpdateServiceData(trainId, datapackageService); _dataStoreServiceStub.UpdateDataStore(new ElementsDataStoreData(trainId)); if (initializeEmbeddedService) { if (_trainDataPackageServiceStub != null) { throw new NotImplementedException("Support to multiple train need to be implemented if needed."); } _trainDataPackageServiceStub = new TrainDataPackageServiceStub(trainId); Uri address = new Uri("http://" + ipAddress + ":" + dataPackagePort); _hostTrainDataPackageService = new ServiceHost(_trainDataPackageServiceStub, address); _hostTrainDataPackageService.Open(); } }
public void TearDown() { if (_datapackageServiceStub != null) { _datapackageServiceStub.Dispose(); _datapackageServiceStub = null; } if (_requestManager != null) { _requestManager.Dispose(); _requestManager = null; } foreach (ServiceHost service in new ServiceHost[] { _hostVehicleInfoService, _hostFileTransferService, _hostIdentificationService, _hostNotificationService, _hostTrainDataPackageService }) { if (service == null) { continue; } if (service.State == CommunicationState.Faulted) { service.Abort(); } service.Close(); } if (_vehicleInfoServiceStub != null) { _vehicleInfoServiceStub.Dispose(); } if (_baselineStatusUpdater != null) { _baselineStatusUpdater.Dispose(); } _hostIdentificationService = null; _hostFileTransferService = null; _hostVehicleInfoService = null; _hostNotificationService = null; _hostTrainDataPackageService = null; _fileTransferServiceStub = null; _identificationServiceStub = null; _vehicleInfoServiceStub = null; _notificationServiceStub = null; _trainDataPackageServiceStub = null; _baselineStatusUpdater = null; DataPackageService.Uninitialize(); T2GManagerContainer.T2GManager = null; _t2gManager = null; _sessionManager = null; _requestFactory = null; if (_dataStoreServiceStub != null) { _dataStoreServiceStub.Dispose(); _dataStoreServiceStub = null; } _remoteDataStoreFactoryMock = null; TestContext currentContext = TestContext.CurrentContext; Console.Out.WriteLine("==================================="); Console.Out.WriteLine("END TEST {0}", currentContext.Test.Name); Console.Out.WriteLine("==================================="); }