public void WithAlreadyAddedAlarm_ShouldNotAddAgain() { IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.AddAlarm(FirstAlarm); alarmManager.AddAlarm(FirstAlarm); alarmManager.CurrentAlarms.Should().HaveCount(1); }
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); }
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 HasErrors_OnManagerWithWarningAlarm_ShouldReturnFalse() { FirstAlarm.Type = AlarmType.Warning; IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.AddAlarm(FirstAlarm); alarmManager.HasErrors.Should().BeFalse(); }
public void HasErrors_OnManagerWithErrorAlarm_ShouldReturnTrue() { FirstAlarm.Type = AlarmType.Error; IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.AddAlarm(FirstAlarm); alarmManager.HasErrors.Should().BeTrue(); }
public void OnManagerWithoutPlugin_ShouldNotRaiseAlarmsChangedEvent() { IAlarmManager alarmManager = CreateAlarmManager(); alarmManager.MonitorEvents(); alarmManager.AddAlarm(FirstAlarm); alarmManager.ShouldNotRaise("AlarmsChanged"); }
public void WithAlarm_ShouldRaiseAlarmsChangedEvent() { IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.MonitorEvents(); alarmManager.AddAlarm(FirstAlarm); alarmManager.ShouldRaise("AlarmsChanged"); }
public void OnManagerWithCurrentAlarm_ShouldNotExposeAlarmAsCurrentAnymore() { IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.AddAlarm(FirstAlarm); alarmManager.AcknowledgeAlarms(); alarmManager.CurrentAlarms.Should().BeEmpty(); }
public void OnManagerWithCurrentAlarm_ShouldExposeAlarmAsHistoric() { IAlarmManager alarmManager = CreateAlarmManager(new InMemoryManageCurrentAlarmsPlugin()); alarmManager.AddAlarm(FirstAlarm); alarmManager.AcknowledgeAlarms(); alarmManager.HistoricAlarms.Should().Contain(FirstAlarm); }
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); }
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 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 override string Speak() { base.Speak(); ConversationIsOver = true; Dialog phrase = CurrentDialog; String alarmType = phrase.GetPropertyValue("SubCommand"); if (alarmType.Equals("Time")) { // A specific time has been requested SamiDateTime alarmTime = ParseTime(phrase.GetPropertyValue("Time")); String alarmResponse = "Your " + alarmTime.Time.ToShortTimeString() + " alarm is complete."; _manager.AddAlarm(alarmResponse, alarmTime); return("The alarm has been set to " + alarmTime.Time.ToShortTimeString()); } else if (alarmType.Equals("Duration")) { // A duration has been requested. int seconds = Convert.ToInt32(phrase.GetPropertyValue("Seconds")); int minutes = Convert.ToInt32(phrase.GetPropertyValue("Minutes")); int hours = Convert.ToInt32(phrase.GetPropertyValue("Hours")); TimeSpan ts = new TimeSpan(hours, minutes, seconds); if (ts.TotalSeconds == 0) { return(""); } else { String alarmResponse = "Your " + SayTime(ts, false) + " timer is complete"; _manager.AddAlarm(alarmResponse, ts); return("The timer has been set to " + SayTime(ts, true) + "."); } } else if (alarmType.Equals("List")) { List <ScheduledAlarm> alarms = _manager.GetScheduledAlarms(); String response = "You have " + alarms.Count; if (alarms.Count == 1) { response += " alarm scheduled. "; } else { response += " alarms scheduled. "; } if (alarms.Count > 0) { List <String> alarmStatus = new List <String>(); foreach (ScheduledAlarm alarm in alarms) { if (alarm.IsDurationAlarm) { alarmStatus.Add(SayTime(alarm.TimeLeft, true) + " left on your " + SayTime(alarm.TotalDuration, false) + " alarm"); } else { alarmStatus.Add(SayTime(alarm.TimeLeft, true) + " left on your " + alarm.AlarmTime.ToShortTimeString() + " alarm"); } } response += "You have " + SayList(alarmStatus); } return(response); } else if (alarmType.Equals("DeleteLast")) { ScheduledAlarm deletedAlarm = _manager.DeleteLastAlarm(); if (deletedAlarm == null) { return("There are no alarms to delete."); } else { if (deletedAlarm.IsDurationAlarm) { return("Deleted the " + SayTime(deletedAlarm.TotalDuration, false) + " alarm"); } else { return("Deleted the " + deletedAlarm.AlarmTime.ToShortTimeString() + " alarm"); } } } else if (alarmType.Equals("DeleteAll")) { if (_manager.DeleteAllAlarms()) { return("Deleted all alarms."); } else { return("There are no alarms to delete."); } } else { return("The alarm type " + alarmType + " is not valid."); } }