示例#1
0
        public async Task TestFunctionShouldReturnOkResultAsync()
        {
            //Given
            var alarmService    = new Mock <IAlarmService>();
            var watchService    = new Mock <IWatchService>();
            var machineService  = new Mock <IMachineService>();
            var alarmLogService = new Mock <IAlarmLogService>();
            var notificationConnectionSetting = new Mock <INotificationHubConnectionSettings>();
            var notificationHub = new Mock <INotificationHubClient>();

            var body    = new { MachinasdfeId = "test-id-1", AlarmCode = 42 };
            var machine = new AlarmSystem.Core.Entity.DB.Machine
            {
                MachineId = "machine-id-test",
                Type      = "machine-type-test",
                Name      = "machine-name-test"
            };
            var alarm = new AlarmSystem.Core.Entity.DB.Alarm
            {
                AlarmId     = 1,
                Code        = 1,
                Description = "alarm-description-test"
            };

            var req = new HttpRequestBuilder().Body(body).Build();

            var alarmSubs = new List <AlarmWatch>()
            {
                new AlarmWatch {
                    Alarm = new AlarmSystem.Core.Entity.DB.Alarm {
                        Code = 42, Description = "alarm-desc"
                    }, WatchId = "watch-test-id-1"
                }
            };
            var machineSubs = new List <MachineWatch>()
            {
                new MachineWatch {
                    Machine = new Core.Entity.DB.Machine {
                        MachineId = "test-id-1"
                    }, WatchId = "watch-test-id-1"
                }
            };

            //When
            alarmService.Setup(als => als.GetAlarmByCode(It.IsAny <int>())).Returns(alarm);
            machineService.Setup(ms => ms.GetMachineById(It.IsAny <string>())).Returns(machine);
            watchService.Setup(ws => ws.GetAlarmSubscriptionsByAlarmCode(It.IsAny <int>())).Returns(alarmSubs);
            watchService.Setup(ws => ws.GetMachineSubscriptionsByMachine(It.IsAny <string>())).Returns(machineSubs);
            notificationHub.Setup(nh => nh.SendDirectNotificationAsync(It.IsAny <Notification>(), It.IsAny <string>()));
            notificationConnectionSetting.Setup(ncs => ncs.Hub).Returns(notificationHub.Object);

            var res = (OkResult)await new SendAlert(watchService.Object, alarmService.Object, machineService.Object, alarmLogService.Object, notificationConnectionSetting.Object).Run(req, logger);

            //Then
            Assert.IsType <OkResult>(res);
        }
        private AlarmWatch ParseFunctionModelToDtoModel(SubscribeToAlarmModel stam)
        {
            AlarmSystem.Core.Entity.DB.Alarm alarm = _alarmservice.GetAlarmById(stam.AlarmId);

            AlarmWatch aw = new AlarmWatch()
            {
                Alarm   = alarm,
                WatchId = stam.WatchId
            };

            return(aw);
        }
        private AlarmSystem.Core.Entity.DB.AlarmLog CreateAlarmLog(SendAlertModel sam)
        {
            AlarmSystem.Core.Entity.DB.Alarm   alarm   = _alarmService.GetAlarmByCode(sam.AlarmCode);
            AlarmSystem.Core.Entity.DB.Machine machine = _machineService.GetMachineById(sam.MachineId);
            var  date       = DateTime.UtcNow;
            long epochOfNow = new DateTimeOffset(date).ToUnixTimeMilliseconds();

            AlarmSystem.Core.Entity.DB.AlarmLog al = new AlarmSystem.Core.Entity.DB.AlarmLog()
            {
                Alarm = alarm, Machine = machine, Date = epochOfNow
            };

            _alarmLogService.CreateAlarmLog(al);

            return(al);
        }
示例#4
0
        public async Task TestFunctionShouldReturnErrorMessageIfExceptionIsThrown1Async()
        {
            //Given
            var alarmService    = new Mock <IAlarmService>();
            var watchService    = new Mock <IWatchService>();
            var machineService  = new Mock <IMachineService>();
            var alarmLogService = new Mock <IAlarmLogService>();
            var notificationConnectionSetting = new Mock <INotificationHubConnectionSettings>();
            var notificationHub = new Mock <INotificationHubClient>();

            var body    = new { MachineId = "test-id-1", AlarmCode = 42 };
            var machine = new AlarmSystem.Core.Entity.DB.Machine
            {
                MachineId = "machine-id-test",
                Type      = "machine-type-test",
                Name      = "machine-name-test"
            };
            var alarm = new AlarmSystem.Core.Entity.DB.Alarm
            {
                AlarmId     = 1,
                Code        = 1,
                Description = "alarm-description-test"
            };

            var req = new HttpRequestBuilder().Body(body).Build();

            var alarmSubs = new List <AlarmWatch>();

            //When
            alarmService.Setup(als => als.GetAlarmByCode(It.IsAny <int>())).Returns(alarm);
            machineService.Setup(ms => ms.GetMachineById(It.IsAny <string>())).Returns(machine);
            watchService.Setup(ws => ws.GetAlarmSubscriptionsByAlarmCode(It.IsAny <int>())).Returns(alarmSubs);
            watchService.Setup(ws => ws.GetMachineSubscriptionsByMachine(It.IsAny <string>())).Throws <InvalidDataException>();
            notificationHub.Setup(nh => nh.SendDirectNotificationAsync(It.IsAny <Notification>(), It.IsAny <string>()));
            notificationConnectionSetting.Setup(ncs => ncs.Hub).Returns(notificationHub.Object);

            var res = (BadRequestObjectResult)await new SendAlert(watchService.Object, alarmService.Object, machineService.Object, alarmLogService.Object, notificationConnectionSetting.Object).Run(req, logger);

            //Then
            Assert.False(String.IsNullOrEmpty((string)res.Value));
        }