Ejemplo n.º 1
0
        public void OpenTimeSpecifiedSessions_WrongSpecifiedSessionTimeFormat_DoesNotOverrideRotaSessions()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "26-01-2018-10:07-22:10",
                    "27-01-2018-*8:05-13:30"
                },
                RotaSessions = new[]
                {
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 0, Minutes = 1
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndTime        = new TimeOfDay {
                            Hours = 23, Minutes = 59
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 9, Minutes = 3
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndTime        = new TimeOfDay {
                            Hours = 21, Minutes = 5
                        },
                        Status = "Open"
                    }
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(2, result.Length);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(9, result[0].StartTime.Hours);
            Assert.AreEqual(3, result[0].StartTime.Minutes);
            Assert.AreEqual(21, result[0].EndTime.Hours);
            Assert.AreEqual(5, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(10, result[1].StartTime.Hours);
            Assert.AreEqual(7, result[1].StartTime.Minutes);
            Assert.AreEqual(22, result[1].EndTime.Hours);
            Assert.AreEqual(10, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);
        }
Ejemplo n.º 2
0
        public void OpenTimeSpecifiedSessions_OnlyRotaWithoutSpecified_ShowsRotaAndOpen()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                RotaSessions = new[] { new ServiceCareItemRotaSession {
                                           StartTime = new TimeOfDay {
                                               Hours = 1, Minutes = 0
                                           },
                                           StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday,
                                           EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday,
                                           EndTime        = new TimeOfDay {
                                               Hours = 15, Minutes = 30
                                           },
                                           Status = "Open"
                                       } }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.IsTrue(sut.IsOpen);
            Assert.AreEqual(1, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(1, result[0].StartTime.Hours);
            Assert.AreEqual(0, result[0].StartTime.Minutes);
            Assert.AreEqual(15, result[0].EndTime.Hours);
            Assert.AreEqual(30, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);
        }
Ejemplo n.º 3
0
        public void OpenTimeSpecifiedSessions_NoRotaSessions_UsesOpenTimeSpecified()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "26-01-2018-08:05-13:30",
                    "27-01-2018-07:15-20:09"
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(2, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(8, result[0].StartTime.Hours);
            Assert.AreEqual(5, result[0].StartTime.Minutes);
            Assert.AreEqual(13, result[0].EndTime.Hours);
            Assert.AreEqual(30, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(7, result[1].StartTime.Hours);
            Assert.AreEqual(15, result[1].StartTime.Minutes);
            Assert.AreEqual(20, result[1].EndTime.Hours);
            Assert.AreEqual(9, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);
        }
Ejemplo n.º 4
0
        public void OpenTimeSpecifiedSessions_SessionInNextWeek_OverridesExistingSessionForThatDay()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "26-01-2018-08:05-13:30"
                },
                RotaSessions = new[] { new ServiceCareItemRotaSession {
                                           StartTime = new TimeOfDay {
                                               Hours = 0, Minutes = 0
                                           },
                                           StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                                           EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                                           EndTime        = new TimeOfDay {
                                               Hours = 23, Minutes = 59
                                           },
                                           Status = "Open"
                                       } }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(1, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(8, result[0].StartTime.Hours);
            Assert.AreEqual(5, result[0].StartTime.Minutes);
            Assert.AreEqual(13, result[0].EndTime.Hours);
            Assert.AreEqual(30, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);
        }
Ejemplo n.º 5
0
        public void OpenTimeSpecifiedSessions_RotaSessionAcrossTwodays_OverridenBySpecifiedSessionOnStartDay()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "27-01-2018-18:05-23:30"
                },
                RotaSessions = new[]
                {
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 0, Minutes = 1
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndTime        = new TimeOfDay {
                            Hours = 23, Minutes = 59
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 9, Minutes = 3
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Sunday,
                        EndTime        = new TimeOfDay {
                            Hours = 21, Minutes = 5
                        },
                        Status = "Open"
                    }
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(2, result.Length);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(0, result[0].StartTime.Hours);
            Assert.AreEqual(1, result[0].StartTime.Minutes);
            Assert.AreEqual(23, result[0].EndTime.Hours);
            Assert.AreEqual(59, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(18, result[1].StartTime.Hours);
            Assert.AreEqual(5, result[1].StartTime.Minutes);
            Assert.AreEqual(23, result[1].EndTime.Hours);
            Assert.AreEqual(30, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);
        }
Ejemplo n.º 6
0
        public void OpenTimeSpecifiedSessions_MultipleSpecifiedSessionsOnSameDay_OverrideExistingAndShowsAllSpecifiedSessionsInList()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "26-01-2018-21:10-22:02",
                    "26-01-2018-14:18-21:07",
                    "26-01-2018-08:05-13:30",
                },
                RotaSessions = new[]
                {
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 0, Minutes = 0
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndTime        = new TimeOfDay {
                            Hours = 10, Minutes = 55
                        },
                        Status = "Open"
                    }
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(3, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(21, result[0].StartTime.Hours);
            Assert.AreEqual(10, result[0].StartTime.Minutes);
            Assert.AreEqual(22, result[0].EndTime.Hours);
            Assert.AreEqual(2, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(14, result[1].StartTime.Hours);
            Assert.AreEqual(18, result[1].StartTime.Minutes);
            Assert.AreEqual(21, result[1].EndTime.Hours);
            Assert.AreEqual(7, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[2].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[2].EndDayOfWeek));
            Assert.AreEqual(8, result[2].StartTime.Hours);
            Assert.AreEqual(5, result[2].StartTime.Minutes);
            Assert.AreEqual(13, result[2].EndTime.Hours);
            Assert.AreEqual(30, result[2].EndTime.Minutes);
            Assert.AreEqual(_status, result[2].Status);
        }
Ejemplo n.º 7
0
        public void OpenTimeSpecifiedSessions_NoSpecifiedSessions_UsesRotaSessions()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                RotaSessions = new[]
                {
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 0, Minutes = 1
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndTime        = new TimeOfDay {
                            Hours = 23, Minutes = 59
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 2, Minutes = 3
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday,
                        EndTime        = new TimeOfDay {
                            Hours = 22, Minutes = 5
                        },
                        Status = "Open"
                    }
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(2, result.Length);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(0, result[0].StartTime.Hours);
            Assert.AreEqual(1, result[0].StartTime.Minutes);
            Assert.AreEqual(23, result[0].EndTime.Hours);
            Assert.AreEqual(59, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(2, result[1].StartTime.Hours);
            Assert.AreEqual(3, result[1].StartTime.Minutes);
            Assert.AreEqual(22, result[1].EndTime.Hours);
            Assert.AreEqual(5, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);
        }
Ejemplo n.º 8
0
        public void OpenTimeSpecifiedSessions_NoRotaSessionsOrOpenTimeSpecified_ReturnsEmptyList()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(0, result.Length);
        }
Ejemplo n.º 9
0
        public void OpenTimeSpecifiedSessions_OnlySpecifiedWithoutRota_ShowsSpecifiedSessionAndOpen()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "25-01-2018-01:00-15:30"
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.IsTrue(sut.IsOpen);
            Assert.AreEqual(1, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Thursday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(1, result[0].StartTime.Hours);
            Assert.AreEqual(0, result[0].StartTime.Minutes);
            Assert.AreEqual(15, result[0].EndTime.Hours);
            Assert.AreEqual(30, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);
        }
Ejemplo n.º 10
0
        public void OpenTimeSpecifiedSessions_MultipleSpecifiedSessionsInNextWeek_OverridesExistingSessionsForThoseDays()
        {
            //arrange
            DosService sut = new DosService(_IClock.Object)
            {
                OpenTimeSpecifiedSessions = new[]
                {
                    "26-01-2018-08:05-13:30",
                    "27-01-2018-09:07-10:20",
                    "29-01-2018-11:15-14:45",
                    "30-01-2018-22:25-23:35",
                },
                RotaSessions = new[]
                {
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 0, Minutes = 1
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday,
                        EndTime        = new TimeOfDay {
                            Hours = 23, Minutes = 59
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 3, Minutes = 40
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday,
                        EndTime        = new TimeOfDay {
                            Hours = 4, Minutes = 55
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 7, Minutes = 53
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Sunday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Sunday,
                        EndTime        = new TimeOfDay {
                            Hours = 9, Minutes = 2
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 6, Minutes = 41
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Monday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Monday,
                        EndTime        = new TimeOfDay {
                            Hours = 20, Minutes = 14
                        },
                        Status = "Open"
                    },
                    new ServiceCareItemRotaSession
                    {
                        StartTime = new TimeOfDay {
                            Hours = 19, Minutes = 8
                        },
                        StartDayOfWeek = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday,
                        EndDayOfWeek   = NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday,
                        EndTime        = new TimeOfDay {
                            Hours = 21, Minutes = 57
                        },
                        Status = "Open"
                    },
                }
            };

            //act
            var result = sut.RotaSessionsAndSpecifiedSessions;

            Assert.AreEqual(5, result.Length);
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Friday.Equals(result[1].EndDayOfWeek));
            Assert.AreEqual(8, result[1].StartTime.Hours);
            Assert.AreEqual(5, result[1].StartTime.Minutes);
            Assert.AreEqual(13, result[1].EndTime.Hours);
            Assert.AreEqual(30, result[1].EndTime.Minutes);
            Assert.AreEqual(_status, result[1].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[2].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Saturday.Equals(result[2].EndDayOfWeek));
            Assert.AreEqual(9, result[2].StartTime.Hours);
            Assert.AreEqual(7, result[2].StartTime.Minutes);
            Assert.AreEqual(10, result[2].EndTime.Hours);
            Assert.AreEqual(20, result[2].EndTime.Minutes);
            Assert.AreEqual(_status, result[2].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Sunday.Equals(result[0].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Sunday.Equals(result[0].EndDayOfWeek));
            Assert.AreEqual(7, result[0].StartTime.Hours);
            Assert.AreEqual(53, result[0].StartTime.Minutes);
            Assert.AreEqual(9, result[0].EndTime.Hours);
            Assert.AreEqual(2, result[0].EndTime.Minutes);
            Assert.AreEqual(_status, result[0].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Monday.Equals(result[3].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Monday.Equals(result[3].EndDayOfWeek));
            Assert.AreEqual(11, result[3].StartTime.Hours);
            Assert.AreEqual(15, result[3].StartTime.Minutes);
            Assert.AreEqual(14, result[3].EndTime.Hours);
            Assert.AreEqual(45, result[3].EndTime.Minutes);
            Assert.AreEqual(_status, result[3].Status);

            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday.Equals(result[4].StartDayOfWeek));
            Assert.IsTrue(NHS111.Models.Models.Web.FromExternalServices.DayOfWeek.Tuesday.Equals(result[4].EndDayOfWeek));
            Assert.AreEqual(22, result[4].StartTime.Hours);
            Assert.AreEqual(25, result[4].StartTime.Minutes);
            Assert.AreEqual(23, result[4].EndTime.Hours);
            Assert.AreEqual(35, result[4].EndTime.Minutes);
            Assert.AreEqual(_status, result[4].Status);
        }