public void CheckingOffPillOffAt_8H_UpdateCalledTest() { ITaskReminderIO <Pill, PillSchedule> taskReminderIOMock = Substitute.For <ITaskReminderIO <Pill, PillSchedule> >(); taskReminderIOMock.GetAllTask().Returns(testPills); taskReminderIOMock.GetAllTaskSchedule().Returns(testPillSchedules); Time mockedTime = new Time(8, 0, 0); timeProvider = Substitute.For <ITimeProvider>(); timeProvider.CurrentTime.Returns(mockedTime); timeProvider.CurrrentDateTime.Returns(mockedTime.ToDateTime()); timerMock = Substitute.For <ITimer>(); Tuple <Pill, Time> pillToCheckOff = new Tuple <Pill, Time>(new Pill("Bar", 4, testPills[1].ID), new Time(8, 0, 0)); PillSchedule exceptedRecivedPillSchedule = new PillSchedule(testPillSchedules[1].ID, testPills[1], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(8, 0, 0), true), new Tuple <Time, bool>(new Time(18, 0, 0), false), }); PillReminderManager reminderManager = new PillReminderManager(new Time(0, 5, 0), taskReminderIOMock, timeProvider, timerMock); timerMock.Elapsed += Raise.Event <ElapsedEventHandler>(this, createElapsedEventArgs(mockedTime.ToDateTime())); reminderManager.CheckingOffFinishedTask(pillToCheckOff); taskReminderIOMock.Received().UpdateTaskScheduleData(Arg.Is <PillSchedule>(p => p.Pill.Equals(pillToCheckOff.Item1))); }
public void OneTimeSetUp() { testPills = new List <Pill>() { new Pill("Foo", 3), new Pill("Bar", 4), new Pill("Baz", 3), new Pill("RedPill", 3) }; testPillSchedules = new List <PillSchedule>() { new PillSchedule(testPills[0], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(6, 0, 0), false), new Tuple <Time, bool>(new Time(12, 0, 0), false), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPills[1], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(8, 0, 0), false), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPills[2], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(6, 0, 0), false), new Tuple <Time, bool>(new Time(12, 0, 0), false), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPills[3], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(23, 56, 00), true), }), }; pillReminderIOMock = Substitute.For <ITaskReminderIO <Pill, PillSchedule> >(); pillReminderIOMock.GetAllTaskSchedule().Returns(testPillSchedules); pillReminderIOMock.GetAllTask().Returns(testPills); Time time = new Time(0, 30, 0); }
public void PillManagerSavingTest() { ITaskReminderIO <Pill, PillSchedule> taskReminderIOMock = Substitute.For <ITaskReminderIO <Pill, PillSchedule> >(); taskReminderIOMock.GetAllTask().Returns(testPills); taskReminderIOMock.GetAllTaskSchedule().Returns(testPillSchedules); timeProvider = Substitute.For <ITimeProvider>(); timeProvider.CurrentTime.Returns(new Time(12, 0, 0)); timeProvider.CurrrentDateTime.Returns(new Time(12, 0, 0).ToDateTime()); List <Tuple <Pill, Time> > pillToCheckOff = new List <Tuple <Pill, Time> >() { new Tuple <Pill, Time>(testPills[0], new Time(12, 0, 0)), new Tuple <Pill, Time>(testPills[2], new Time(12, 0, 0)) }; List <PillSchedule> exceptedUpdatePillSchedule = new List <PillSchedule>() { new PillSchedule(testPillSchedules[0].ID, testPills[0], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(6, 0, 0), false), new Tuple <Time, bool>(new Time(12, 0, 0), true), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPillSchedules[1].ID, testPills[1], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(8, 0, 0), false), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPillSchedules[2].ID, testPills[2], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(6, 0, 0), false), new Tuple <Time, bool>(new Time(12, 0, 0), true), new Tuple <Time, bool>(new Time(18, 0, 0), false), }), new PillSchedule(testPillSchedules[3].ID, testPills[3], new List <Tuple <Time, bool> >() { new Tuple <Time, bool>(new Time(23, 56, 00), true), }), }; timerMock = Substitute.For <ITimer>(); PillReminderManager pillReminderManager = new PillReminderManager(new Time(0, 10, 0), taskReminderIOMock, timeProvider, timerMock); timerMock.Elapsed += Raise.Event <ElapsedEventHandler>(this, createElapsedEventArgs(new Time(12, 0, 0).ToDateTime())); pillReminderManager.CheckingOffFinishedTask(pillToCheckOff[0]); pillReminderManager.CheckingOffFinishedTask(pillToCheckOff[1]); timeProvider.CurrentTime.Returns(new Time(12, 10, 0)); timerMock.Elapsed += Raise.Event <ElapsedEventHandler>(this, createElapsedEventArgs(new Time(12, 10, 0).ToDateTime())); timeProvider.CurrentTime.Returns(new Time(12, 20, 0)); timerMock.Elapsed += Raise.Event <ElapsedEventHandler>(this, createElapsedEventArgs(new Time(12, 20, 0).ToDateTime())); taskReminderIOMock.Received().UpdateTaskScheduleDatas(Arg.Is <List <PillSchedule> >(p => p[0].TakenRecordForTheDay[1].Item2 == true && p[2].TakenRecordForTheDay[1].Item2 == true)); timeProvider.CurrentTime.Returns(new Time(12, 30, 0)); timerMock.Elapsed += Raise.Event <ElapsedEventHandler>(this, createElapsedEventArgs(new Time(12, 30, 0).ToDateTime())); }