public void Select_Finds_Resident_Associated_With_RotationShift_First()
        {
            var rotationShift = new RotationShift(BitwiseDayOfWeek.Monday | BitwiseDayOfWeek.Tuesday, TimeConstants.StartOfDay12HourDay, TimeConstants.EndOfDay12HourDay);
            var shifts = new ShiftFactory().Create(new List<RotationShift> { rotationShift }, new DateTime(2012, 12, 3), new DateTime(2012, 12, 4)).ToList();
            var residents = new List<Resident> { new Resident(), new Resident() };

            shifts.First().Resident = residents.Skip(1).First();

            var selector = new ResidentSelector();
            selector.Constraints.Clear();

            Assert.AreEqual(residents.Skip(1).First(), selector.Select(residents, shifts.Skip(1).First()));
        }
        public void Create_ForEachDay_MutlidayRotationShift()
        {
            var mockery = new MockRepository();
            var shiftDayFactory = mockery.StrictMock<IShiftDayFactory>();

            var startDate = GetMonday(DateTime.Today);
            var mondayTuesdayRotationShift = new RotationShift(Common.BitwiseDayOfWeek.Monday | BitwiseDayOfWeek.Tuesday, TimeConstants.StartOfDay, TimeConstants.EndOfDay);

            var rotationShifts = new List<RotationShift> { mondayTuesdayRotationShift };
            using (mockery.Record()) {
                Expect.Call(shiftDayFactory.CreateShiftsForDay(Arg<DateTime>.Is.Equal(startDate), Arg<IEnumerable<RotationShift>>.List.IsIn(mondayTuesdayRotationShift))).Return(new List<Shift>());
                Expect.Call(shiftDayFactory.CreateShiftsForDay(Arg<DateTime>.Is.Equal(startDate.AddDays(1)), Arg<IEnumerable<RotationShift>>.List.IsIn(mondayTuesdayRotationShift))).Return(new List<Shift>());
            }
            using (mockery.Playback()) {
                new ShiftFactory(shiftDayFactory).Create(rotationShifts, startDate, startDate.AddDays(1));
            }
        }