public void WorkingCounterTest() { // arrange float tarif1 = 10, tarif2 = 12, tarif3 = 14, tarif4 = 15; var device = new Mercury203Virtual(); device.Parameters[ParameterNamesMercury203Virtual.CounterTarif1].Value = tarif1; device.Parameters[ParameterNamesMercury203Virtual.CounterTarif2].Value = tarif2; device.Parameters[ParameterNamesMercury203Virtual.CounterTarif3].Value = tarif3; device.Parameters[ParameterNamesMercury203Virtual.CounterTarif4].Value = tarif4; var controller = new IncotexNetworkControllerVirtual(); controller.Devices.Add(device); // act device.Start(); controller.Start(); Thread.Sleep(5000); // assert Assert.IsTrue(tarif1 < (float)device.Parameters[ParameterNamesMercury203Virtual.CounterTarif1].Value, "Значение счётчика должно было измениться в большую сторону"); Assert.IsTrue(tarif2 < (float)device.Parameters[ParameterNamesMercury203Virtual.CounterTarif2].Value, "Значение счётчика должно было измениться в большую сторону"); Assert.IsTrue(tarif3 < (float)device.Parameters[ParameterNamesMercury203Virtual.CounterTarif3].Value, "Значение счётчика должно было измениться в большую сторону"); Assert.IsTrue(tarif4 < (float)device.Parameters[ParameterNamesMercury203Virtual.CounterTarif4].Value, "Значение счётчика должно было измениться в большую сторону"); controller.Dispose(); }
public void StartTest() { // Arrange var controller = new IncotexNetworkControllerVirtual(); // Action controller.Start(); var status = controller.Status; controller.Dispose(); // Assert Assert.AreEqual(Status.Running, status); }
/// <summary> /// Создаёт сеть на основе типа и добавляет в коллекцию /// </summary> /// <param name="network">Объект сети из БД</param> public void AddNetwork(ResursAPI.Device network) { switch (network.DeviceType) { case ResursAPI.DeviceType.Network: { switch(network.DriverType) { case ResursAPI.DriverType.IncotextNetwork: { var incotexPort = new Incotex.NetworkControllers.DataLinkLayer.ComPort { BaudRate = (int)network.GetParameter( ParameterNamesIncotexNetwork.BautRate), PortName = ((ParameterStringContainer)network.GetParameter( ParameterNamesIncotexNetwork.PortName)).GetValue() }; var incotexController = new IncotexNetworkController { Id = (Guid)network.GetParameter(ParameterNamesIncotexNetwork.Id), Connection = (IDataLinkPort)incotexPort, BroadcastRequestDelay = (int)network.GetParameter( ParameterNamesIncotexNetwork.BroadcastDelay), RequestTimeout = (int)network.GetParameter( ParameterNamesIncotexNetwork.Timeout) }; _NetworkControllers.Add((INetwrokController)incotexController); if (network.IsActive) { incotexController.Start(); } else { incotexController.Stop(); } break; } case DriverType.VirtualIncotextNetwork: { var controller = new IncotexNetworkControllerVirtual { Id = (Guid)network.GetParameter(ParameterNamesIncotexNetworkVirtual.Id), PollingPeriod = (int)network.GetParameter(ParameterNamesIncotexNetworkVirtual.PollInterval) }; _NetworkControllers.Add((INetwrokController)controller); if (network.IsActive) { controller.Start(); } else { controller.Stop(); } break; } default: { throw new NotSupportedException(String.Format( "Устройтсво с DriverType={0} не поддерживается", network.DriverType.ToString())); } } break; } case ResursAPI.DeviceType.Counter: { throw new InvalidCastException( "Попытка приветсти счётчик эл энергии к контроллеру сети"); } default: { throw new InvalidCastException(String.Format( "Неудалось привести типы. Устройтсво с DeviceType={0} не поддерживается", network.DeviceType.ToString())); } } }
public void RaiseEventParameterChangedByIncotexNetworkControllerVirtualTest() { // Arrange var testCntr = new TestContener(); testCntr.Manager = NetworksManager.Instance; var controller = new IncotexNetworkControllerVirtual(); var device = new Mercury203Virtual(); controller.Devices.Add(device); testCntr.Manager.Networks.Add(controller); device.Start(); controller.Start(); // Act // ждём Thread.Sleep(1000); //while (!testCntr.IsEventRaised) { Thread.Sleep(1000); } controller.Stop(); // Assert Assert.IsTrue(testCntr.IsEventRaisedParamChanged); }
public void RaiseEventDeviceHasErrorTest() { // Arrange var testCntr = new TestContener(); testCntr.Manager = NetworksManager.Instance; var controller = new IncotexNetworkControllerVirtual(); var device = new Mercury203Virtual(); controller.Devices.Add(device); testCntr.Manager.Networks.Add(controller); device.Start(); controller.Start(); // Act testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.SetCommunicationError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(true, device.CommunicationError); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.ResetCommunicationError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(false, device.CommunicationError); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.SetConfigurationError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(true, device.ConfigurationError); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.ResetConfigurationError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(false, device.ConfigurationError); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.SetRtcError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(true, device.RtcError); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SendCommand(device.Id, CommandNamesMercury203Virtual.ResetRtcError); // Assert Assert.IsTrue(testCntr.IsEventRaisedErrorOccured); Assert.AreEqual(false, device.RtcError); }