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 UpdatePillSchedule()
        {
            PillSchedule updatedPillSchedule = new PillSchedule(testPillSchedules[0].ID,
                                                                testPills[0],
                                                                new List <Tuple <Time, bool> >()
            {
                new Tuple <Time, bool>(new Time(9, 0, 0), false),
                new Tuple <Time, bool>(new Time(13, 0, 0), false),
                new Tuple <Time, bool>(new Time(20, 0, 0), false),
            }
                                                                );
            PillSchedule retrivedPillSchedule;
            PillScheduleStorageObject retrivedPillScheduleInStorageObj;

            JsonSerializer serializer = new JsonSerializer();

            using (StreamWriter sw = new StreamWriter($@"{pillScheduleDataFolderPath}\{testPillSchedules[0].ID.ToString()}_Schedule.dat"))
                using (JsonWriter writer = new JsonTextWriter(sw))
                {
                    serializer.Serialize(writer, new PillScheduleStorageObject(testPillSchedules[0]));
                }

            pillReminderIO.UpdateTaskScheduleData(updatedPillSchedule);

            using (StreamReader sr = new StreamReader($@"{pillScheduleDataFolderPath}\{testPillSchedules[0].ID.ToString()}_Schedule.dat"))
                using (JsonReader reader = new JsonTextReader(sr))
                {
                    retrivedPillScheduleInStorageObj = serializer.Deserialize <PillScheduleStorageObject>(reader);
                }
            retrivedPillSchedule = retrivedPillScheduleInStorageObj.PillScheduleStorageObjectToPillSchedule();

            Assert.That(updatedPillSchedule.Equals(retrivedPillSchedule));
        }
 public void GenerateTestPillSchedules()
 {
     threeTimesPerDaySchedule = 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),
     };
     testPill         = new Pill("Foo", 3, new Guid("45802942-4d99-410f-8fde-767146e9f1ca"));
     testPillSchedule = new PillSchedule(new Guid("ab433a69-3fd9-4ad5-bf28-abd5ac698f9d"), testPill, threeTimesPerDaySchedule);
 }
Exemplo n.º 4
0
 public void GenerateTestPillSchedules()
 {
     threeTimesPerDaySchedule = 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),
     };
     pillSchedule = new PillSchedule(testPill, threeTimesPerDaySchedule);
     testPill     = new Pill("Foo", 3);
 }
        public void PillScheduleDifferentScheduleNotEqualTest()
        {
            List <Tuple <Time, bool> > differentSchedule = new List <Tuple <Time, bool> >()
            {
                new Tuple <Time, bool>(new Time(9, 0, 0), false),
                new Tuple <Time, bool>(new Time(15, 0, 0), false),
                new Tuple <Time, bool>(new Time(21, 0, 0), false),
            };
            PillSchedule pillScheduleWithDifferentSchedule = new PillSchedule(testPill, differentSchedule);

            Assert.IsFalse(testPillSchedule.Equals(pillScheduleWithDifferentSchedule));
        }
Exemplo n.º 6
0
        public PillSchedule PillScheduleStorageObjectToPillSchedule()
        {
            List <Tuple <Time, bool> > takenRecord = new List <Tuple <Time, bool> >();

            for (int i = 0; i < TakenTimes.Count; i++)
            {
                takenRecord.Add(new Tuple <Time, bool>(new Time(TakenTimes[i]), HasTaken[i]));
            }
            PillSchedule pillSchedule = new PillSchedule(ID, Pill, takenRecord);

            return(pillSchedule);
        }
        public void PillScheduleEqualTest()
        {
            PillSchedule secondSchedule = new PillSchedule(new Guid("ab433a69-3fd9-4ad5-bf28-abd5ac698f9d"),
                                                           new Pill("Foo", 3, new Guid("45802942-4d99-410f-8fde-767146e9f1ca")),
                                                           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),
            });

            Assert.That(secondSchedule.Equals(testPillSchedule));
        }
        public void PillScheduleDifferentScheduleTimeCountNotEqalTest()
        {
            List <Tuple <Time, bool> > differentSchedule = 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 Tuple <Time, bool>(new Time(23, 0, 0), false),
            };
            PillSchedule pillScheduleWithDifferentTimeCouunt = new PillSchedule(new Pill("Foo", 3), differentSchedule);

            Assert.IsFalse(testPillSchedule.Equals(pillScheduleWithDifferentTimeCouunt));
        }
Exemplo n.º 9
0
        public PillScheduleStorageObject(PillSchedule pillSchedule)
        {
            ID         = pillSchedule.ID;
            Pill       = pillSchedule.Pill;
            TakenTimes = new List <DateTime>();
            HasTaken   = new List <bool>();


            foreach (var item in pillSchedule.TakenRecordForTheDay)
            {
                TakenTimes.Add(item.Item1.ToDateTime());
                HasTaken.Add(item.Item2);
            }
        }
        public void PillScheduleDifferentPillNotEqualTest()
        {
            PillSchedule pillScheduleWithDifferentPill = new PillSchedule(new Pill("Bar", 2), threeTimesPerDaySchedule);

            Assert.IsFalse(testPillSchedule.Equals(pillScheduleWithDifferentPill));
        }