Пример #1
0
        public void Test_GetBatteryPercentage_After_First_Poll()
        {
            var sensor = new FireSensor();
            var poll   = sensor.IsTriggered;

            Assert.AreEqual(90, sensor.GetBatteryPercentage());
        }
Пример #2
0
        public void TestThatGetSensorTypeReturnsNull()
        {
            FireSensor sensor     = new FireSensor();
            string     sensorType = sensor.GetSensorType();

            Assert.Null(sensorType);
        }
Пример #3
0
        public void TestThatIsTriggeredReturnsFalse()
        {
            FireSensor sensor      = new FireSensor();
            bool       isTriggered = sensor.IsTriggered;

            Assert.AreEqual(false, isTriggered);
        }
Пример #4
0
        public void TestThatGetSensorTypeReturnsType()
        {
            FireSensor sensor     = new FireSensor();
            string     sensorType = sensor.GetSensorType();

            Assert.AreEqual("Fire sensor", sensorType);
        }
Пример #5
0
        public void DeactivateTest()
        {
            LightSensor ls = new LightSensor();
            FireSensor  fs = new FireSensor();
            DoorSensor  ds = new DoorSensor();

            ls.Activate();
            fs.Activate();
            ds.Activate();

            Assert.IsNotNull(ls.alarm);
            Assert.IsNotNull(fs.alarm);
            Assert.IsNotNull(ds.alarm);

            bool lsStatus = ls.checkStatus();
            bool fsStatus = fs.checkStatus();
            bool dsStatus = ds.checkStatus();

            Assert.IsTrue(lsStatus);
            Assert.IsTrue(fsStatus);
            Assert.IsTrue(dsStatus);

            ls.Deactivate();
            fs.Deactivate();
            ds.Deactivate();

            Assert.IsNull(ls.alarm);
            Assert.IsNull(fs.alarm);
            Assert.IsNull(ds.alarm);
        }
Пример #6
0
        public void TestThatGetSensorTypeReturnsNull()
        {
            FireSensor sensor     = new FireSensor();
            string     sensorType = sensor.GetSensorType();

            Assert.AreEqual(String.Empty, sensorType);
        }
Пример #7
0
        public void TestThatIsTriggeredReturnsTrue()
        {
            FireSensor sensor          = new FireSensor();
            bool       isTriggeredTrue = sensor.Trigger() == true ? true : true;

            Assert.AreEqual(true, isTriggeredTrue);
        }
Пример #8
0
        public void TestThatGetBatteryPercentageReturnsNegativeOne()
        {
            FireSensor sensor            = new FireSensor();
            double     batteryPercentage = sensor.GetBatteryPercentage();

            Assert.AreEqual(-1.0, batteryPercentage);
        }
Пример #9
0
        public void TestThatGetLocationReturnsNull()
        {
            FireSensor sensor   = new FireSensor();
            string     location = sensor.GetLocation();

            Assert.Null(location);
        }
Пример #10
0
        public void TestThatIsTriggeredReturnsFalse()
        {
            FireSensor sensor      = new FireSensor();
            bool       isTriggered = sensor.IsTriggered();

            Assert.False(isTriggered);
        }
Пример #11
0
        public void TestThatGetLocationReturnsNull()
        {
            FireSensor sensor   = new FireSensor();
            string     location = sensor.GetLocation();

            Console.WriteLine(location);
            Assert.AreEqual(String.Empty, location);
        }
Пример #12
0
        public void TestThatIsTriggeredReturnsFalse()
        {
            FireSensor sensor = new FireSensor();
            // We "fix" the return value of is triggered
            bool isTriggeredFalse = sensor.Trigger() == true ? false : false;

            Assert.AreEqual(false, sensor.Trigger());
        }
        public void TestThatPollFireSensorsSucceeds()
        {
            ILocationProvider LFF = new SensorLobby1stFloor();
            IBatterySensor    FS  = new FireSensor(LFF);

            SFCU_FS = new SafetyControlUnit <IBatterySensor>(new List <IBatterySensor> {
                FS
            });
            Assert.IsTrue((SFCU_FS.PollSensors() == "Polled AlarmSystem.FireSensor at the Lobby 1st floor successfully\n" || SFCU_FS.PollSensors() == "A AlarmSystem.FireSensor sensor was triggered at the Lobby 1st floor\n")?true:false, "TestThatPollFireSensorsSucceeds() FAILED");
        }
Пример #14
0
        public void TestThatGetLocationReturnsLocation()
        {
            FireSensor sensor   = new FireSensor("Boiler Room");
            string     location = sensor.GetLocation();

            Assert.AreEqual("Boiler Room", location);
            FireSensor sensor_2   = new FireSensor("Factory");
            string     location_2 = sensor_2.GetLocation();

            Assert.AreEqual("Factory", location_2);
        }
Пример #15
0
        public void TestThatIsTriggeredCanReturnTrue()
        {
            FireSensor  sensor  = new FireSensor();
            List <bool> results = new List <bool>();

            for (var i = 0; i <= 1000; i++)
            {
                results.Add(sensor.Trigger());
            }

            Assert.AreEqual(true, results.Contains(true));
        }
Пример #16
0
        public void TestCreator()
        {
            LightSensor ls = new LightSensor();

            Assert.IsNotNull(ls);
            FireSensor fs = new FireSensor();

            Assert.IsNotNull(fs);
            DoorSensor ds = new DoorSensor();

            Assert.IsNotNull(ds);
        }
        public void TestThatBatteryPercentageDepletes10PercentAtEachPollForFireSensor()
        {
            ILocationProvider LFF = new SensorLobby1stFloor();
            IBatterySensor    FS  = new FireSensor(LFF);

            SFCU_FS = new SafetyControlUnit <IBatterySensor>(new List <IBatterySensor> {
                FS
            });

            SFCU_FS.PollSensors();
            Assert.AreEqual("Battery power of the Sensor at the Lobby 1st floor of type AlarmSystem.FireSensor is at 0.9percent\n", SFCU_FS.GetBatteryPercentage());
        }
Пример #18
0
        public void GetUIDTest()
        {
            LightSensor ls  = new LightSensor();
            FireSensor  fs  = new FireSensor();
            LightSensor ls2 = new LightSensor();
            FireSensor  fs2 = new FireSensor();
            DoorSensor  ds  = new DoorSensor();
            DoorSensor  ds2 = new DoorSensor();

            Assert.AreNotEqual(ls.getSensorUID(), ls2.getSensorUID());
            Assert.AreNotEqual(fs.getSensorUID(), fs2.getSensorUID());
            Assert.AreNotEqual(ds.getSensorUID(), ds2.getSensorUID());
        }
Пример #19
0
        public void CheckStatusTest()
        {
            LightSensor ls       = new LightSensor();
            FireSensor  fs       = new FireSensor();
            DoorSensor  ds       = new DoorSensor();
            bool        lsStatus = ls.checkStatus();
            bool        fsStatus = fs.checkStatus();
            bool        dsStatus = ds.checkStatus();

            Assert.IsFalse(lsStatus);
            Assert.IsFalse(fsStatus);
            Assert.IsFalse(dsStatus);
        }
Пример #20
0
 public HardwareType Resolve(Hardware source, HardwareDto destination, HardwareType destMember, ResolutionContext context)
 {
     return(source switch
     {
         Cabinet e => HardwareType.Cabinet,
         ARM e => HardwareType.ARM,
         Flowmeter e => HardwareType.Flowmeter,
         Pressure e => HardwareType.Pressure,
         DiffPressure e => HardwareType.DiffPressure,
         Temperature e => HardwareType.Temperature,
         GasAnalyzer e => HardwareType.GasAnalyzer,
         FireSensor e => HardwareType.FireSensor,
         FlowComputer e => HardwareType.FlowComputer,
         PLC e => HardwareType.PLC,
         APC e => HardwareType.APC,
         NetworkHardware e => HardwareType.Network,
         Valve e => HardwareType.Valve,
         InformPanel e => HardwareType.InformPanel,
         FireModule e => HardwareType.FireModule,
         _ => HardwareType.Valve,
     });
Пример #21
0
        public void TestThatEmptyControlAcceptsDifferentSensors()
        {
            IBatterySensor        fire    = new FireSensor();
            IBatterySensor        smoke   = new SmokeSensor();
            List <IBatterySensor> sensors = new List <IBatterySensor>();

            sensors.Add(fire);
            sensors.Add(smoke);
            ExtendedControlUnit controlUnit = new ExtendedControlUnit(sensors);

            Assert.AreEqual(2, sensors.Count);

            ISensor        door          = new MotionSensor();
            ISensor        garage        = new MotionSensor();
            List <ISensor> motionSensors = new List <ISensor>();

            motionSensors.Add(door);
            motionSensors.Add(garage);
            ExtendedControlUnit sensorControl = new ExtendedControlUnit(motionSensors);

            Assert.AreEqual(2, motionSensors.Count);
        }
Пример #22
0
        public void SupressSensorTest()
        {
            LightSensor ls = new LightSensor();
            FireSensor  fs = new FireSensor();
            DoorSensor  ds = new DoorSensor();

            Alarm lsA = ls.triggerSensor();
            Alarm fsA = fs.triggerSensor();
            Alarm dsA = ds.triggerSensor();

            ls.Deactivate();
            fs.Deactivate();
            ds.Deactivate();

            bool lsStatus = ls.checkStatus();
            bool fsStatus = fs.checkStatus();
            bool dsStatus = ds.checkStatus();

            Assert.IsFalse(lsStatus);
            Assert.IsFalse(fsStatus);
            Assert.IsFalse(dsStatus);
        }
Пример #23
0
        /// <summary>
        /// Generates the sensors.
        /// </summary>
        /// <param name="size">The size.</param>
        /// <returns>A list of Sensors.</returns>
        public static List <Sensor> GetSensors(int count = 3)
        {
            List <Sensor> Collection = new List <Sensor>();
            Random        lvl        = new Random();
            Random        Temp       = new Random();

            for (int i = 0; i < count; i++)
            {
                SmokeSensor smokeSensor = new SmokeSensor($"{Smokename}{i + 1}", lvl.Next(0, 99));
                CombiSensor combiSensor = new CombiSensor($"{Combiname}{i + 1}", lvl.Next(CombiSensor.MinTemp, CombiSensor.MaxTemp));
                FireSensor  fireSensor  = new FireSensor($"{Firename}{i + 1}");

                smokeSensor.Temperatures = GenTemperatureFor(smokeSensor, Temp);
                combiSensor.Temperatures = GenTemperatureFor(combiSensor, Temp);
                fireSensor.Temperatures  = GenTemperatureFor(fireSensor, Temp);

                Collection.Add(smokeSensor);
                Collection.Add(combiSensor);
                Collection.Add(fireSensor);
            }

            return(Collection);
        }
Пример #24
0
        public ISensor CreateSensor(int inType)
        {
            ISensor sensor;

            switch ((SensorType)inType)
            {
            case SensorType.SmokeSensor:
                sensor = new FireSensor();
                break;

            case SensorType.LightSensor:
                sensor = new LightSensor();
                break;

            case SensorType.DoorSensor:
                sensor = new DoorSensor();
                break;

            default:
                sensor = null;
                break;
            }
            return(sensor);
        }
        public async Task <int> Handle(CreateHardwareCommand request, CancellationToken cancellationToken)
        {
            var contract = await _context.Contracts.FirstOrDefaultAsync(c => c.Id == request.ContractId);

            if (contract == null)
            {
                throw new NullReferenceException("Договор с таким Id не найден.");
            }

            Hardware entity;

            switch (request.HardwareType)
            {
            case HardwareType.Cabinet:
                entity = new Cabinet
                {
                    Position      = request.Position,
                    SerialNumber  = request.SerialNumber,
                    Constructed   = (DateTime)request.Constructed,
                    ConstructedBy = request.ConstructedBy
                };
                break;

            case HardwareType.FlowComputer:
                entity = new FlowComputer
                {
                    Position        = request.Position,
                    SerialNumber    = request.SerialNumber,
                    DeviceModel     = request.DeviceModel,
                    IP              = request.IPAddress,
                    AssemblyVersion = request.AssemblyVersion,
                    CRC32           = request.CRC32,
                    LastConfigDate  = request.LastConfigDate
                };
                break;

            case HardwareType.Flowmeter:
                entity = new Flowmeter
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    MinValue     = request.MinValue,
                    MaxValue     = request.MaxValue,
                    EU           = request.EU,
                    Kfactor      = request.KFactor,
                    SignalType   = request.SignalType,
                    Settings     = new ModbusSettings
                    {
                        Address  = request.ModbusSettings.Address,
                        BoudRate = request.ModbusSettings.BoudRate,
                        DataBits = request.ModbusSettings.DataBits,
                        Parity   = Enum.GetName(typeof(Parity), request.ModbusSettings.Parity),
                        StopBit  = request.ModbusSettings.StopBit
                    }
                };
                break;

            case HardwareType.Network:
                entity = new NetworkHardware
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceType   = request.DeviceType,
                    DeviceModel  = request.DeviceModel,
                    Mask         = request.Mask
                };
                foreach (var item in request.NetworkDevices)
                {
                    ((NetworkHardware)entity).NetworkDevices.Add(new NetworkDevice
                    {
                        IP         = item.IP,
                        MacAddress = item.MacAddress,
                        Name       = item.Name
                    });
                }
                break;

            case HardwareType.PLC:
                entity = new PLC
                {
                    Position        = request.Position,
                    SerialNumber    = request.SerialNumber,
                    DeviceModel     = request.DeviceModel,
                    IP              = request.IPAddress,
                    AssemblyVersion = request.AssemblyVersion
                };
                break;

            case HardwareType.Pressure:
                entity = new Pressure
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    MinValue     = request.MinValue,
                    MaxValue     = request.MaxValue,
                    EU           = request.EU,
                    SignalType   = request.SignalType
                };
                break;

            case HardwareType.Temperature:
                entity = new Temperature
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    MinValue     = request.MinValue,
                    MaxValue     = request.MaxValue,
                    EU           = request.EU,
                    SignalType   = request.SignalType
                };
                break;

            case HardwareType.DiffPressure:
                entity = new DiffPressure
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    MinValue     = request.MinValue,
                    MaxValue     = request.MaxValue,
                    EU           = request.EU,
                    SignalType   = request.SignalType
                };
                break;

            case HardwareType.GasAnalyzer:
                entity = new GasAnalyzer
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    MinValue     = request.MinValue,
                    MaxValue     = request.MaxValue,
                    EU           = request.EU,
                    SignalType   = request.SignalType
                };
                break;

            case HardwareType.InformPanel:
                entity = new InformPanel
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType,
                    PanelType    = request.PanelType
                };
                break;

            case HardwareType.FireSensor:
                entity = new FireSensor
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType
                };
                break;

            case HardwareType.FireModule:
                entity = new FireModule
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceType   = request.DeviceType
                };
                break;

            case HardwareType.Valve:
                entity = new Valve
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceType   = request.DeviceType,
                    DeviceModel  = request.DeviceModel,
                    SignalType   = request.SignalType,
                    Settings     = new ModbusSettings
                    {
                        Address  = request.ModbusSettings.Address,
                        BoudRate = request.ModbusSettings.BoudRate,
                        DataBits = request.ModbusSettings.DataBits,
                        Parity   = Enum.GetName(typeof(Parity), request.ModbusSettings.Parity),
                        StopBit  = request.ModbusSettings.StopBit
                    }
                };
                break;

            case HardwareType.ARM:
                entity = new ARM
                {
                    Position     = request.Position,
                    Name         = request.ArmName,
                    SerialNumber = request.SerialNumber,
                    Monitor      = request.Monitor,
                    MonitorSN    = request.MonitorSN,
                    Keyboard     = request.Keyboard,
                    KeyboardSN   = request.KeyboardSN,
                    Mouse        = request.Mouse,
                    MouseSN      = request.MouseSN,
                    OS           = request.OS,
                    ProductKeyOS = request.ProductKeyOS,
                    HasRAID      = request.HasRAID
                };
                foreach (var item in request.NetworkAdapters)
                {
                    ((ARM)entity).NetworkAdapters.Add(new NetworkAdapter
                    {
                        IP         = item.IP,
                        MacAddress = item.MacAddress
                    });
                }
                break;

            case HardwareType.APC:
                entity = new APC
                {
                    Position     = request.Position,
                    SerialNumber = request.SerialNumber,
                    DeviceModel  = request.DeviceModel,
                    DeviceType   = request.DeviceType
                };
                break;

            default:
                entity = null;
                break;
            }

            contract.HardwareList.Add(entity);
            contract.HasProtocol = false;
            _context.Update(contract);

            try
            {
                await _context.SaveChangesAsync(cancellationToken);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(entity.Id);
        }
Пример #26
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SensorViewModel"/> class.
        /// </summary>
        /// <param name="sensor">The sensor.</param>
        public FireSensorViewModel(FireSensor sensor)
        {
            var time = DateTime.Now;

            Sensor = sensor;
        }