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 MainWindowViewModel() { var controller = new IncotexNetworkControllerVirtual(); NetworksManager.Instance.Networks.Add(controller); var device = new Mercury203Virtual(); controller.Devices.Add(device); }
public void StartTest() { // Arrange var controller = new IncotexNetworkControllerVirtual(); // Action controller.Start(); var status = controller.Status; controller.Dispose(); // Assert Assert.AreEqual(Status.Running, status); }
public void SyncDateTimeTest() { using (ShimsContext.Create()) { // Arrange var dt = DateTime.Now; var device = new Mercury203Virtual(); var controller = new IncotexNetworkControllerVirtual(); controller.Devices.Add(device); ShimDateTime.NowGet = () => dt; // Action controller.SyncDateTime(); // Assert Assert.AreEqual(dt.ToString(), device.Rtc.ToString()); } }
/// <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); }
public void RaiseEventStatusChangedTest() { // 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); // Act testCntr.Manager.SetSatus(controller.Id, true); // Assert Assert.IsTrue(testCntr.IsEventRaisedStatusChanged); Assert.AreEqual(Status.Running, controller.Status); Assert.AreEqual(controller.Id, testCntr.StatusChangedArgs.Id); Assert.AreEqual(controller.Status, testCntr.StatusChangedArgs.Status); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SetSatus(controller.Id, false); // Assert Assert.IsTrue(testCntr.IsEventRaisedStatusChanged); Assert.AreEqual(Status.Stopped, controller.Status); Assert.AreEqual(controller.Id, testCntr.StatusChangedArgs.Id); Assert.AreEqual(controller.Status, testCntr.StatusChangedArgs.Status); testCntr.Manager.SetSatus(controller.Id, true); Thread.Sleep(1000); testCntr.Manager.SetSatus(controller.Id, false); Thread.Sleep(1000); testCntr.Manager.SetSatus(controller.Id, true); Thread.Sleep(1000); testCntr.Manager.SetSatus(controller.Id, false); Thread.Sleep(1000); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SetSatus(device.Id, true); // Assert Assert.IsTrue(testCntr.IsEventRaisedStatusChanged); Assert.AreEqual(Status.Running, device.Status); Assert.AreEqual(device.Id, testCntr.StatusChangedArgs.Id); Assert.AreEqual(device.Status, testCntr.StatusChangedArgs.Status); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SetSatus(device.Id, false); // Assert Assert.IsTrue(testCntr.IsEventRaisedStatusChanged); Assert.AreEqual(Status.Stopped, device.Status); Assert.AreEqual(device.Id, testCntr.StatusChangedArgs.Id); Assert.AreEqual(device.Status, testCntr.StatusChangedArgs.Status); // Arrange device = new Mercury203Virtual { Address = 2 }; controller.Devices.Add(device); // Act testCntr.ResetEventsFlags(); testCntr.Manager.SetSatus(device.Id, true); // Assert Assert.IsTrue(testCntr.IsEventRaisedStatusChanged); Assert.AreEqual(Status.Running, device.Status); Assert.AreEqual(device.Id, testCntr.StatusChangedArgs.Id); Assert.AreEqual(device.Status, testCntr.StatusChangedArgs.Status); // Act testCntr.Manager.RemoveDevice(device.Id); }
public void SetStatusTest() { // arrange var manager = NetworksManager.Instance; var controller = new IncotexNetworkControllerVirtual(); var device = new Mercury203Virtual(); controller.Devices.Add(device); manager.Networks.Add(controller); // Проверяем установку статуса сонтроллера сети // Act manager.SetSatus(controller.Id, true); // Assert Assert.AreEqual(Status.Running, controller.Status); // Act manager.SetSatus(controller.Id, false); Thread.Sleep(2000); // Ждём завершения // Assert Assert.AreEqual(Status.Stopped, controller.Status); // Проверяем установку статуса устройтсва // Act manager.SetSatus(device.Id, true); // Assert Assert.AreEqual(Status.Running, device.Status); // Act manager.SetSatus(device.Id, false); // Assert Assert.AreEqual(Status.Stopped, device.Status); }