Example #1
0
        public void Should_return_shifts_calendar_with_two_patron_day_check_and_direct_switch()
        {
            var patronDay1 = new PatronDay(new LocalDate(2019, 12, 5), "US");
            var patronDay2 = new PatronDay(new LocalDate(2019, 12, 6), "LA");

            var sut = new ShiftsService(() => _calendarService.Build());

            var actual = sut
                         .AddPatronDay(patronDay1)
                         .AddPatronDay(patronDay2)
                         .Build(_heroMates)
                         .ToList();

            const string expectedCandidateHero        = "2";
            const string expectedCandidateCountryCode = "LA";
            var          expectedCandidateDay         = patronDay1.Day;

            Assert.AreEqual(expectedCandidateHero, actual.First(a => a.Schedule == expectedCandidateDay).TeamMate.Id);
            Assert.AreEqual(expectedCandidateCountryCode,
                            actual.First(a => a.Schedule == expectedCandidateDay).TeamMate.CountryCode);

            const string expectedHero        = "1";
            var          expectedCountryCode = patronDay1.CountryCode;
            var          expectedDay         = patronDay1.Day.PlusDays(1);

            Assert.AreEqual(expectedHero, actual.First(a => a.Schedule == expectedDay).TeamMate.Id);
            Assert.AreEqual(expectedCountryCode, actual.First(a => a.Schedule == expectedDay).TeamMate.CountryCode);
        }
        public HomeController()
        {
            var engine          = new Engine(2, 10, 10);
            var shiftStorage    = new StorageBase <int[, ]>("WheelsoffortuneShifts.json");
            var engineerStorage = new StorageBase <IList <Engineer> >("WheelsoffortuneEngineers.json");

            _service = new ShiftsService(engine, shiftStorage, engineerStorage);
        }
Example #3
0
        public void Should_return_shifts_calendar_without_patron_days_check()
        {
            var sut = new ShiftsService(() => _calendarService.Build());

            var actual = sut
                         .Build(_heroMates)
                         .ToList();

            CheckCompleteCalendar(actual);
        }
Example #4
0
        public void Infinity()
        {
            var sut = new ShiftsService(() => _calendarService.Build());

            var actual = sut
                         .AddPatronDay(new PatronDay(new LocalDate(2019, 12, 6), "US"))
                         .AddPatronDay(new PatronDay(new LocalDate(2019, 12, 6), "LA"))
                         .AddPatronDay(new PatronDay(new LocalDate(2019, 12, 6), "AZ"))
                         .Build(_heroMates)
                         .ToList();
        }
Example #5
0
        public void Should_return_shifts_calendar_with_one_patron_day_but_non_in_current_mount()
        {
            var patronDay = new PatronDay(new LocalDate(2019, 10, 25), "LA");

            var sut = new ShiftsService(() => _calendarService.Build());

            var actual = sut
                         .AddPatronDay(patronDay)
                         .Build(_heroMates)
                         .ToList();

            CheckCompleteCalendar(actual);
        }
Example #6
0
        public void Should_use_old_calendar()
        {
            var sut = new ShiftsService(() => _calendarService.Build());

            var calendarOld = new List <Shift>
            {
                new Shift(new TeamMate("1", "IronMan", "US"), new LocalDate(2019, 11, 1)),
                new Shift(new TeamMate("3", "Thor", "AZ"), new LocalDate(2019, 11, 2)),
                new Shift(new TeamMate("2", "Hulk", "LA"), new LocalDate(2019, 11, 3)),
                new Shift(new TeamMate("4", "AntMan", "US"), new LocalDate(2019, 11, 4)),
                new Shift(new TeamMate("1", "IronMan", "US"), new LocalDate(2019, 11, 5)),
                new Shift(new TeamMate("3", "Thor", "AZ"), new LocalDate(2019, 11, 6)),
                new Shift(new TeamMate("2", "Hulk", "LA"), new LocalDate(2019, 11, 7)),
                new Shift(new TeamMate("4", "AntMan", "US"), new LocalDate(2019, 11, 8)),
                new Shift(new TeamMate("1", "IronMan", "US"), new LocalDate(2019, 11, 9)),
                new Shift(new TeamMate("3", "Thor", "AZ"), new LocalDate(2019, 11, 10))
            };

            var actual = sut
                         .Build(calendarOld)
                         .ToList();

            var expected = new List <Shift>
            {
                new Shift(new TeamMate("2", "Hulk", "LA"), new LocalDate(2019, 12, 1)),
                new Shift(new TeamMate("4", "AntMan", "US"), new LocalDate(2019, 12, 2)),
                new Shift(new TeamMate("1", "IronMan", "US"), new LocalDate(2019, 12, 3)),
                new Shift(new TeamMate("3", "Thor", "AZ"), new LocalDate(2019, 12, 4)),
                new Shift(new TeamMate("2", "Hulk", "LA"), new LocalDate(2019, 12, 5)),
                new Shift(new TeamMate("4", "AntMan", "US"), new LocalDate(2019, 12, 6)),
                new Shift(new TeamMate("1", "IronMan", "US"), new LocalDate(2019, 12, 7)),
                new Shift(new TeamMate("3", "Thor", "AZ"), new LocalDate(2019, 12, 8)),
                new Shift(new TeamMate("2", "Hulk", "LA"), new LocalDate(2019, 12, 9))
            };

            for (var i = 0; i < actual.Count; i++)
            {
                var e = expected.Skip(i).First();
                var a = actual.Skip(i).First();

                Assert.AreEqual(e.Schedule, a.Schedule);
                Assert.AreEqual(e.TeamMate.Id, a.TeamMate.Id);
            }
        }
Example #7
0
 public ShiftsController(ShiftsService shiftsService)
 {
     _shiftsService = shiftsService;
 }