예제 #1
0
        public void ShouldHandleAllDayEvents()
        {
            // Cheer 100 artfortheapocalypse 17/07/19

            // arrange
            Schedule theSchedule = new Schedule
            {
                ScheduleItems = new List <ScheduleItem>
                {
                    new ScheduleItem
                    {
                        Name          = "Dance Marathon",
                        StartDateTime = new DateTime(2019, 7, 20),
                        EndDateTime   = new DateTime(2019, 7, 21),
                        Status        = ScheduleStatus.NotAvailable
                    }
                },
                ScheduleExceptions = new List <ScheduleException> {
                    TheWeekend
                }
            };

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(theSchedule, new DateTime(2019, 1, 1), new DateTime(2019, 12, 31));

            // assert
            Assert.Empty(results);
        }
예제 #2
0
        public void MultipleRecurringSchedules_ShouldExpandWithinRequestedDatesOnly_NoIntersection()
        {
            // arrange

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(_MyMultipleRecurringSchedule, new DateTime(2019, 5, 1), new DateTime(2019, 5, 15), _LoggerFactory.CreateLogger("test"));

            // assert
            Assert.Empty(results);
        }
예제 #3
0
        public void ShouldExpandWithinRequestedDatesOnly_Scenario4()
        {
            // arrange

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(_MySchedule, new DateTime(2019, 4, 1), new DateTime(2019, 6, 1), _LoggerFactory.CreateLogger("test"));

            // assert
            Assert.Equal(4, results.Count());
            Assert.Equal(15, results.First().StartDateTime.Hour);
        }
예제 #4
0
        public void ShouldExpandWithinDelimitedDatesOnly()
        {
            // arrange

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(_MySchedule, new DateTime(2019, 1, 1), new DateTime(2019, 12, 31));

            // assert
            Assert.Equal(4, results.Count());
            Assert.Equal(15, results.First().StartDateTime.Hour);
        }
        public void ShouldExpandWithinRequestedDatesOnly()
        {
            // arrange

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(_MySchedule, new DateTime(2019, 5, 1), new DateTime(2019, 5, 15), _LoggerFactory.CreateLogger("test"));

            // assert
            results.Should().HaveCount(2);
            results.First().StartDateTime.Hour.Should().Be(15);
        }
예제 #6
0
        public void ShouldExpandWithinDelimitedDatesOnly()
        {
            // arrange
            var testLogger = new XunitLogger(testOutputHelper);

            // act
            var sut = new Fritz.ResourceManagement.Scheduling.ScheduleManager();

            testOutputHelper.WriteLine(_MySchedule.RecurringSchedules[0].Duration.TotalHours.ToString());
            var results = sut.ExpandSchedule(_MySchedule, new DateTime(2019, 6, 24), new DateTime(2019, 6, 26), testLogger);

            // assert
            results.Should().HaveCount(2);
            results.First().StartDateTime.Hour.Should().Be(0);
            results.First().EndDateTime.Hour.Should().Be(0);
        }
예제 #7
0
        public void ShouldRemoveTimeslotsOverTheWeekend()
        {
            // Cheer 200 faniereynders 17/07/19
            // Cheer 100 devlead 17/07/19

            // arrange
            _MySchedule.ScheduleExceptions.Add(TheWeekend);

            // act
            var sut     = new Fritz.ResourceManagement.Scheduling.ScheduleManager();
            var results = sut.ExpandSchedule(_MySchedule, new DateTime(2019, 1, 1), new DateTime(2019, 12, 31));

            // assert
            Assert.Equal(28, results.Count());
            Assert.Equal(12, results.First().StartDateTime.Hour);
        }