Exemplo n.º 1
0
        public void TestRemoveLastAlarmConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);

            // Get first time to have the alarm.
            DateTime desiredTime1 = DateTime.Now.AddMinutes(10);

            desiredTime1 = new DateTime(desiredTime1.Year, desiredTime1.Month, desiredTime1.Day, desiredTime1.Hour, desiredTime1.Minute, 0);

            // Add expected request to remove alarm.
            alarmMan.Setup(s => s.DeleteLastAlarm()).Returns(new ScheduledAlarm("Testing alarm", new Timer(60 * 10), new TimeSpan(0, 10, 0), desiredTime1));

            // Set up conversation.
            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "DeleteLast" },
            };
            String response = RunSingleConversation <AlarmConversation>(input);

            // Check output.
            Assert.AreEqual("Deleted the 10 minute alarm", response);
            alarmMan.Verify(s => s.DeleteLastAlarm(), Times.Exactly(1));
        }
Exemplo n.º 2
0
        public void TestListAlarmsOneAbsoluteAlarmConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);

            // Get first time to have the alarm.
            DateTime desiredTime = DateTime.Now.AddMinutes(10);
            String   amPm        = desiredTime.Hour > 11 ? "pm" : "am";
            int      amPmHours   = desiredTime.Hour > 12 ? desiredTime.Hour - 12 : desiredTime.Hour == 0 ? 12 : desiredTime.Hour;

            desiredTime = new DateTime(desiredTime.Year, desiredTime.Month, desiredTime.Day, desiredTime.Hour, desiredTime.Minute, 0);

            alarmMan.Setup(s => s.GetScheduledAlarms()).Returns(new List <ScheduledAlarm>
            {
                new ScheduledAlarm("Testing alarm", new Timer(60 * 10), desiredTime),
            });

            // Set up conversation.
            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "List" },
            };
            String response = RunSingleConversation <AlarmConversation>(input);

            // Check output.
            String regExPattern = String.Format("You have 1 alarm scheduled. You have [0-9] minutes (and ([1-9])?[0-9] second([s])?)? left on your {0}:{1:00} {2} alarm", amPmHours, desiredTime.Minute, amPm.ToUpper());

            Assert.IsTrue(Regex.IsMatch(response, regExPattern), response);
            alarmMan.Verify(s => s.GetScheduledAlarms(), Times.Exactly(1));
        }
Exemplo n.º 3
0
        public void TestListAlarmsNoAlarmsConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);
            alarmMan.Setup(s => s.GetScheduledAlarms()).Returns(new List <ScheduledAlarm>());

            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "List" },
            };

            Assert.AreEqual("You have 0 alarms scheduled. ", RunSingleConversation <AlarmConversation>(input));
            alarmMan.Verify(s => s.GetScheduledAlarms(), Times.Exactly(1));
        }
Exemplo n.º 4
0
        public void TestSetAlarmDurationConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);
            alarmMan.Setup(s => s.AddAlarm("Your 5 minute timer is complete", new TimeSpan(0, 5, 0)));

            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "Duration" },
                { "Hours", "0" },
                { "Minutes", "5" },
                { "Seconds", "0" },
            };

            Assert.AreEqual("The timer has been set to 5 minutes.", RunSingleConversation <AlarmConversation>(input));
            alarmMan.Verify(s => s.AddAlarm("Your 5 minute timer is complete", new TimeSpan(0, 5, 0)), Times.Exactly(1));
        }
Exemplo n.º 5
0
        public void TestRemoveAllAlarmsNoAlarmsConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);

            // Add expected request to remove alarm.
            alarmMan.Setup(s => s.DeleteAllAlarms()).Returns(false);

            // Set up conversation.
            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "DeleteAll" },
            };
            String response = RunSingleConversation <AlarmConversation>(input);

            // Check output.
            Assert.AreEqual("There are no alarms to delete.", response);
            alarmMan.Verify(s => s.DeleteAllAlarms(), Times.Exactly(1));
        }
Exemplo n.º 6
0
        public void TestSetAlarmAbsoluteTimeConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);
            DateTime desiredTime = DateTime.Now.AddMinutes(10);

            desiredTime = new DateTime(desiredTime.Year, desiredTime.Month, desiredTime.Day, desiredTime.Hour, desiredTime.Minute, 0);
            String amPm      = desiredTime.Hour > 11 ? "pm" : "am";
            int    amPmHours = desiredTime.Hour > 12 ? desiredTime.Hour - 12 : desiredTime.Hour == 0 ? 12 : desiredTime.Hour;

            alarmMan.Setup(s => s.AddAlarm(String.Format("Your {0}:{1:00} {2} alarm is complete.", amPmHours, desiredTime.Minute, amPm.ToUpper()), new SamiDateTime(desiredTime, DateTimeRange.SpecificTime)));

            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "Time" },
                { "Time", String.Format("Hours={0};Minutes={1};TimeOfDay={2};", amPmHours, desiredTime.Minute, amPm) },
            };

            Assert.AreEqual(String.Format("The alarm has been set to {0}:{1:00} {2}", amPmHours, desiredTime.Minute, amPm.ToUpper()), RunSingleConversation <AlarmConversation>(input));
            alarmMan.Verify(s => s.AddAlarm(String.Format("Your {0}:{1:00} {2} alarm is complete.", amPmHours, desiredTime.Minute, amPm.ToUpper()), new SamiDateTime(desiredTime, DateTimeRange.SpecificTime)), Times.Exactly(1));
        }
Exemplo n.º 7
0
        public void TestListAlarmsManyDurationAlarmsConversation()
        {
            Mock <IAlarmManager> alarmMan = new Mock <IAlarmManager>(MockBehavior.Strict);

            CurrentConversation = new AlarmConversation(GetConfigurationManager(), alarmMan.Object);

            // Get first time to have the alarm.
            DateTime desiredTime1 = DateTime.Now.AddMinutes(10);

            desiredTime1 = new DateTime(desiredTime1.Year, desiredTime1.Month, desiredTime1.Day, desiredTime1.Hour, desiredTime1.Minute, 0);

            // Get second time to have the alarm.
            DateTime desiredTime2 = DateTime.Now.AddMinutes(20);

            desiredTime2 = new DateTime(desiredTime2.Year, desiredTime2.Month, desiredTime2.Day, desiredTime2.Hour, desiredTime2.Minute, 0);

            // Add alarms to be returned when requested.
            alarmMan.Setup(s => s.GetScheduledAlarms()).Returns(new List <ScheduledAlarm>
            {
                new ScheduledAlarm("Testing alarm", new Timer(60 * 10), new TimeSpan(0, 10, 0), desiredTime1),
                new ScheduledAlarm("Testing alarm two", new Timer(60 * 20), new TimeSpan(0, 20, 0), desiredTime2),
            });

            // Set up conversation.
            Dictionary <String, String> input = new Dictionary <string, string>
            {
                { "Command", "Alarm" },
                { "SubCommand", "List" },
            };
            String response = RunSingleConversation <AlarmConversation>(input);

            // Check output.
            String regExPattern = "You have 2 alarms scheduled. You have [0-9] minutes (and ([1-9])?[0-9] second([s])?)? left on your 10 minute alarm. and 1[0-9] minutes (and ([1-9])?[0-9] second([s])?)? left on your 20 minute alarm";

            Assert.IsTrue(Regex.IsMatch(response, regExPattern), response);
            alarmMan.Verify(s => s.GetScheduledAlarms(), Times.Exactly(1));
        }