예제 #1
0
        public static AlarmExistsResult Check(IAlarmManager alarmManager, Guid alarmPeriodId)
        {
            if (alarmManager == null) throw new ArgumentException(nameof(alarmManager));

            var alarmPeriod = alarmManager.FindAlarmPeriod(alarmPeriodId);
            return Check(alarmPeriod, "不存在对应的闹钟。");
        }
        public void OnManagerWithoutPlugin_ShouldExposeEmptyEnumerable()
        {
            IAlarmManager alarmManager = CreateAlarmManager();

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.CurrentAlarms.Should().BeEmpty();
        }
        public void WithAlarm_ShouldExposeAddedAlarmAsCurrent()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.CurrentAlarms.Should().OnlyContain(a => Equals(a, FirstAlarm));
        }
        public void WithAlreadyAddedAlarm_ShouldNotAddAgain()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.CurrentAlarms.Should().HaveCount(1);
        }
        public void WithAlarm_ShouldRaiseAlarmsChangedEvent()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.MonitorEvents();
            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.ShouldRaise("AlarmsChanged");
        }
        public void OnManagerWithoutPlugin_ShouldNotRaiseAlarmsChangedEvent()
        {
            IAlarmManager alarmManager = CreateAlarmManager();

            alarmManager.MonitorEvents();
            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.ShouldNotRaise("AlarmsChanged");
        }
예제 #7
0
        public void HasErrors_OnManagerWithErrorAlarm_ShouldReturnTrue()
        {
            FirstAlarm.Type = AlarmType.Error;
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.HasErrors.Should().BeTrue();
        }
예제 #8
0
        public void HasErrors_OnManagerWithWarningAlarm_ShouldReturnFalse()
        {
            FirstAlarm.Type = AlarmType.Warning;
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.HasErrors.Should().BeFalse();
        }
        public void OnManagerWithCurrentAlarm_ShouldNotExposeAlarmAsCurrentAnymore()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.AcknowledgeAlarms();
            alarmManager.CurrentAlarms.Should().BeEmpty();
        }
        public void OnManagerWithoutAlarm_ShouldNotRaiseAlarmsChangedEvent()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.MonitorEvents();
            alarmManager.AcknowledgeAlarms();
            alarmManager.ShouldNotRaise("AlarmsChanged");
        }
        public void OnManagerWithCurrentAlarm_ShouldExposeAlarmAsHistoric()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.AcknowledgeAlarms();
            alarmManager.HistoricAlarms.Should().Contain(FirstAlarm);
        }
        public void WithAlreadyAddedAlarm_ShouldNotRaiseChangedEventOnSecondTry()
        {
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.MonitorEvents();
            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.ShouldNotRaise("AlarmsChanged");
        }
        public void Twice_ShouldAddBothAlarms()
        {
            Alarm         secondAlarm  = CreateRandomAlarm();
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(FirstAlarm);
            alarmManager.AddAlarm(secondAlarm);
            alarmManager.CurrentAlarms.Should().ContainInOrder(FirstAlarm, secondAlarm);
        }
예제 #14
0
 public void Setup()
 {
     this.view                 = Substitute.For <FakeMainView>();
     this.alarmService         = Substitute.For <FakeAlarmService>();
     this.alarmManager         = Substitute.For <IAlarmManager>();
     this.alarmReminderManager = Substitute.For <IAlarmReminderManager>();
     this.alarmFactory         = Substitute.For <IAlarmFactory>();
     this.importer             = Substitute.For <IImporter>();
     this.settings             = new Settings();
     this.viewModel            = new MainViewModel(this.view, this.alarmService, this.alarmManager, this.alarmReminderManager, this.alarmFactory, this.importer, this.settings);
 }
        public void NonResettableAlarm_AlarmsAcknowledged_NonResettableAlarmShouldStay()
        {
            var alarm = new Alarm {
                IsResettable = false
            };
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(alarm);

            alarmManager.AcknowledgeAlarms();

            alarmManager.CurrentAlarms.Should().NotBeEmpty();
        }
        public void HasAlarms_WhenRemoveAlarmUsingId_ShouldRemoveAlarm()
        {
            var alarm = new Alarm {
                AlarmId = 777, Source = "Test"
            };
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(alarm);

            alarmManager.RemoveAlarm("Test", 777);

            alarmManager.CurrentAlarms.Should().BeEmpty();
        }
        public void NonResettableAlarm_WhenRemoveAlarm_AlarmShouldBeGone()
        {
            var alarm = new Alarm {
                IsResettable = false
            };
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(alarm);

            alarmManager.RemoveAlarm(alarm);

            alarmManager.CurrentAlarms.Should().BeEmpty();
        }
        public void HasAlarms_WhenRemoveAlarm_ShouldRemoveTheRightOne()
        {
            var firstAlarm = new Alarm {
                AlarmId = 1
            };
            var secondAlarm = new Alarm {
                AlarmId = 2
            };
            IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin());

            alarmManager.AddAlarm(firstAlarm);
            alarmManager.AddAlarm(secondAlarm);

            alarmManager.RemoveAlarm(secondAlarm);

            alarmManager.CurrentAlarms.Should().Contain(firstAlarm);
            alarmManager.CurrentAlarms.Should().NotContain(secondAlarm);
        }
예제 #19
0
 internal AlarmConversation(IConfigurationManager configManager, IAlarmManager manager)
     : base(configManager)
 {
     _manager = manager;
 }
예제 #20
0
 public void Setup()
 {
     this.view = Substitute.For<FakeMainView>();
     this.alarmService = Substitute.For<FakeAlarmService>();
     this.alarmManager = Substitute.For<IAlarmManager>();
     this.alarmReminderManager = Substitute.For<IAlarmReminderManager>();
     this.alarmFactory = Substitute.For<IAlarmFactory>();
     this.importer = Substitute.For<IImporter>();
     this.settings = new Settings();
     this.viewModel = new MainViewModel(this.view, this.alarmService, this.alarmManager, this.alarmReminderManager, this.alarmFactory, this.importer, this.settings);
 }
예제 #21
0
        public MainViewModel(IMainView view, IAlarmService alarmService, IAlarmManager alarmManager, IAlarmReminderManager alarmReminderManager,
                             IAlarmFactory alarmFactory, IImporter importer, Settings settings)
        {
            if (view == null)
            {
                throw new ArgumentNullException("view");
            }

            if (alarmService == null)
            {
                throw new ArgumentNullException("alarmService");
            }

            if (alarmManager == null)
            {
                throw new ArgumentNullException("alarmManager");
            }

            if (alarmFactory == null)
            {
                throw new ArgumentNullException("alarmFactory");
            }

            if (importer == null)
            {
                throw new ArgumentNullException("importer");
            }

            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            if (alarmReminderManager == null)
            {
                throw new ArgumentNullException("alarmReminderManager");
            }

            this.alarmFactory = alarmFactory;
            this.settings     = settings;

            this.view                        = view;
            this.view.OnLoad                += view_OnLoad;
            this.view.OnClosing             += view_OnClosing;
            this.view.OnHideRequest         += view_OnHideRequest;
            this.view.OnShowRequest         += view_OnShowRequest;
            this.view.OnExitRequest         += view_OnExitRequest;
            this.view.OnHushRequest         += view_OnHushRequest;
            this.view.OnUnhushRequest       += view_OnUnhushRequest;
            this.view.OnCompleteRequest     += view_OnCompleteRequest;
            this.view.OnCancelRequest       += view_OnCancelRequest;
            this.view.OnChangeRequest       += view_OnChangeRequest;
            this.view.OnNewRequest          += view_OnNewRequest;
            this.view.OnImportRequest       += view_OnImportRequest;
            this.view.OnEnableSoundRequest  += view_OnEnableSound;
            this.view.OnDisableSoundRequest += view_OnDisableSound;
            this.view.OnPopupOnAlarmOn      += view_OnPopupOnAlarmOn;
            this.view.OnPopupOnAlarmOff     += view_OnPopupOnAlarmOff;
            this.view.OnSmartAlarmOn        += view_OnSmartAlarmOn;
            this.view.OnSmartAlarmOff       += view_OnSmartAlarmOff;

            this.alarmService                      = alarmService;
            this.alarmService.OnAlarmAdd          += alarmService_OnAlarmAdd;
            this.alarmService.OnAlarmRemoval      += alarmService_OnAlarmRemoval;
            this.alarmService.OnAlarmUpdate       += alarmService_OnAlarmUpdate;
            this.alarmService.OnAlarmStatusChange += alarmService_OnAlarmStatusChange;

            this.alarmManager           = alarmManager;
            this.alarmManager.OnSleep  += alarmManager_OnSleep;
            this.alarmManager.OnWakeup += alarmManager_OnWakeup;

            this.alarmReminderManager = alarmReminderManager;
            this.alarmReminderManager.OnRequestNotification += alarmReminderManager_OnRequestNotification;

            this.importer = importer;

            this.PopupOnAlarmEnabled = this.settings.PopupOnAlarm;
            this.SoundEnabled        = this.settings.EnableSound;
            this.SmartAlarmEnabled   = this.settings.SmartAlarm;
        }
 private static IAlarmAlert EmptyFactory(IAlarmManager alarmManager, IAlarm alarm)
 {
     return(new MockAlarmAlert(alarm));
 }
예제 #23
0
        public MainViewModel(IMainView view, IAlarmService alarmService, IAlarmManager alarmManager, IAlarmReminderManager alarmReminderManager,
                             IAlarmFactory alarmFactory, IImporter importer, Settings settings)
        {
            if (view == null)
                throw new ArgumentNullException("view");

            if (alarmService == null)
                throw new ArgumentNullException("alarmService");

            if (alarmManager == null)
                throw new ArgumentNullException("alarmManager");

            if (alarmFactory == null)
                throw new ArgumentNullException("alarmFactory");

            if (importer == null)
                throw new ArgumentNullException("importer");

            if (settings == null)
                throw new ArgumentNullException("settings");

            if (alarmReminderManager == null)
                throw new ArgumentNullException("alarmReminderManager");

            this.alarmFactory = alarmFactory;
            this.settings = settings;

            this.view = view;
            this.view.OnLoad += view_OnLoad;
            this.view.OnClosing += view_OnClosing;
            this.view.OnHideRequest += view_OnHideRequest;
            this.view.OnShowRequest += view_OnShowRequest;
            this.view.OnExitRequest += view_OnExitRequest;
            this.view.OnHushRequest += view_OnHushRequest;
            this.view.OnUnhushRequest += view_OnUnhushRequest;
            this.view.OnCompleteRequest += view_OnCompleteRequest;
            this.view.OnCancelRequest += view_OnCancelRequest;
            this.view.OnChangeRequest += view_OnChangeRequest;
            this.view.OnNewRequest += view_OnNewRequest;
            this.view.OnImportRequest += view_OnImportRequest;
            this.view.OnEnableSoundRequest += view_OnEnableSound;
            this.view.OnDisableSoundRequest += view_OnDisableSound;
            this.view.OnPopupOnAlarmOn += view_OnPopupOnAlarmOn;
            this.view.OnPopupOnAlarmOff += view_OnPopupOnAlarmOff;
            this.view.OnSmartAlarmOn += view_OnSmartAlarmOn;
            this.view.OnSmartAlarmOff += view_OnSmartAlarmOff;

            this.alarmService = alarmService;
            this.alarmService.OnAlarmAdd += alarmService_OnAlarmAdd;
            this.alarmService.OnAlarmRemoval += alarmService_OnAlarmRemoval;
            this.alarmService.OnAlarmUpdate += alarmService_OnAlarmUpdate;
            this.alarmService.OnAlarmStatusChange += alarmService_OnAlarmStatusChange;

            this.alarmManager = alarmManager;
            this.alarmManager.OnSleep += alarmManager_OnSleep;
            this.alarmManager.OnWakeup += alarmManager_OnWakeup;

            this.alarmReminderManager = alarmReminderManager;
            this.alarmReminderManager.OnRequestNotification += alarmReminderManager_OnRequestNotification;

            this.importer = importer;

            this.PopupOnAlarmEnabled = this.settings.PopupOnAlarm;
            this.SoundEnabled = this.settings.EnableSound;
            this.SmartAlarmEnabled = this.settings.SmartAlarm;
        }