public void SelectTodaysBAUShift_Returns_BAUShift()
        {
            //arrange
            WheelOfFate sut = new WheelOfFateBuilder().Build();

            //act
            BauShift todaysBauShift = sut.SelectTodaysBauShift();

            //assert
            todaysBauShift.ShouldNotBeNull();
        }
        public void SelectTodaysBauShift_CallsSaveOnEngineersRepository()
        {
            //arrange
            var supportEngineersFactory    = A.Fake <ISupportEngineersFactory>();
            var supportEngineersRepository = A.Fake <ISupportEngineersRepository>();
            var sut = new WheelOfFateBuilder()
                      .WithSupportEngineersRepository(supportEngineersRepository)
                      .WihtSupportEngineersFactory(supportEngineersFactory)
                      .Build();

            //act
            var bauShift = sut.SelectTodaysBauShift();

            //assert
            A.CallTo(() => supportEngineersRepository.Save())
            .MustHaveHappened(Repeated.Exactly.Once);
        }
        public void SelectTodaysBAUShift_Returns_BauShiftWithFirstAndLastFromFilteredOutEngineers()
        {
            //arrange
            var supportEngineersFromFilter = new SupportEngineerMocksBuilder()
                                             .WithEngineersWhoDidntHadShiftYesterday(2)
                                             .Build();
            WheelOfFate sut = new WheelOfFateBuilder()
                              .WithSupportEngineersFromFilter(supportEngineersFromFilter)
                              .Build();

            //act
            BauShift todaysBauShift = sut.SelectTodaysBauShift();

            //assert
            supportEngineersFromFilter.First().ShouldBe(todaysBauShift.Shift.First());
            supportEngineersFromFilter.Last().ShouldBe(todaysBauShift.Shift.Last());
        }