public void Filter_Given_LessThanTwoEngineers_Throws_NotEnoughEngineersException(int engineersNumber) { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftYesterday(engineersNumber) .Build(); var sut = new ChooseTwoRandomEngineersFilter(); //act and assert Assert.Throws <NotEnoughEngineersException>(() => sut.Filter(engineers)); }
public void Filter_Given_SupportEngineersWhoHadShiftInLastTwoWeeks_Retrun_EmptyCollection() { //arrange var engineersWheDidntHaveShiftInLastTwoWees = new SupportEngineerMocksBuilder() .WihtEngineersWhoHadTwoShiftInLastTwoWeeks(5) .Build(); var sut = new EngineersWhoDidntHadTwoShiftsInLastTwoWeeksFilter(); //act var filteredEngineers = sut.Filter(engineersWheDidntHaveShiftInLastTwoWees); //assert filteredEngineers.ShouldBeEmpty(); }
public void Filter_Given_SupportEngineersWhoDidntHaveShiftInLastTwoWeeks_Retrun_AllGivenEngineers() { //arrange var engineersWheDidntHaveShiftInLastTwoWees = new SupportEngineerMocksBuilder() .WihtEngineersWhoDidntHadTwoShiftInLastTwoWeeks(5) .Build(); var sut = new EngineersWhoDidntHadTwoShiftsInLastTwoWeeksFilter(); //act var filteredEngineers = sut.Filter(engineersWheDidntHaveShiftInLastTwoWees); //assert filteredEngineers.Count().ShouldBe(engineersWheDidntHaveShiftInLastTwoWees.Count()); }
public void Filter_Given_EngineersWhoDidntHadShiftInLastFiveDays_Return_GivenEngineers() { //arrange var engineersWhiDidntHadShiftInLastFiveDays = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftInLastWeek(5) .Build(); var sut = new PreferEngineersWhoDidintHadShiftInLastWeekFilter(); //act var result = sut.Filter(engineersWhiDidntHadShiftInLastFiveDays); //assert result.ShouldBe(engineersWhiDidntHadShiftInLastFiveDays); }
public void Filter_Given_MoreThanOneEngineer_Returns_TwoRandomEngineers() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftYesterday(2) .Build(); var sut = new ChooseTwoRandomEngineersFilter(); //act var chosenOnes = sut.Filter(engineers); //assert engineers.ShouldContain(chosenOnes.First()); engineers.ShouldContain(chosenOnes.Last()); }
public void Filter_Given_10Engineers_When_ShiftWasntSelectedToday_Return_AllGivenEngineers() { //arrange var engineers = new SupportEngineerMocksBuilder() .WihtEngineersWhoDidntHadTwoShiftInLastTwoWeeks(10) .Build(); var sut = new ShiftSelectedTodayFilter(); //act var result = sut.Filter(engineers); //assert result.Count().ShouldBe(engineers.Count()); }
public void Filter_Given_10Engineers_When_ShiftWasntSelectedToday_Then_CallSuccessor() { //arrange var engineers = new SupportEngineerMocksBuilder() .WihtEngineersWhoDidntHadTwoShiftInLastTwoWeeks(10) .Build(); var successor = A.Fake <ISupportEngineersFilterChain>(); var sut = new ShiftSelectedTodayFilter(successor); //act var result = sut.Filter(engineers); //assert A.CallTo(() => successor.Filter(A <IEnumerable <ISupportEngineer> > ._)) .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()); }
public void Filter_Given_MoreThanTwoEngineersAndSuccessor_Calls_Successor() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoHadShiftYesterday(10) .Build(); var successor = A.Fake <ISupportEngineersFilterChain>(); var sut = new ChooseTwoRandomEngineersFilter(successor); //act var result = sut.Filter(engineers); //assert A.CallTo(() => successor.Filter(A <IEnumerable <ISupportEngineer> > ._)) .MustHaveHappened(Repeated.Exactly.Once); }
public void Filter_Given_SelectedEngineers_Then_LogShifForThem() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersAlreadySelectedForToday(2) .Build(); var sut = new LogShiftForSelectedEngineersFilter(); //act var result = sut.Filter(engineers); //assert foreach (var supportEngineer in result) { A.CallTo(() => supportEngineer.LogTodaysShift()) .MustHaveHappened(Repeated.Exactly.Once); } }
public void Filter_Given_TwoEngineersWhoDidntHadShiftInLastWeek_And_FourEngineersWhoHad_Retrun_TwoWhoDidntHad() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftInLastWeek(2) .WihtEngineersWhoHadShiftInLastWeeks(4) .Build(); var sut = new PreferEngineersWhoDidintHadShiftInLastWeekFilter(); //act var result = sut.Filter(engineers); //assert result.Count().ShouldBe(2); result.Count(se => se.Name == nameof(SupportEngineerMocksBuilder.WithEngineersWhoDidntHadShiftInLastWeek)) .ShouldBe(2); }
Filter_Given_MoreThanTwoEngineersAndSuccessor_When_ShiftWasAlreadySelectedToday_SuccessorIsNotCalled() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftYesterday(8) .WithEngineersAlreadySelectedForToday(2) .Build(); var successor = A.Fake <ISupportEngineersFilterChain>(); var sut = new ShiftSelectedTodayFilter(successor); //act var result = sut.Filter(engineers); //assert A.CallTo(() => successor.Filter(A <IEnumerable <ISupportEngineer> > ._)) .MustNotHaveHappened(); }
Filter_Given_MoreThanTwoEngineersAndSuccessor_When_ShiftWasAlreadySelectedToday_Return_AlreadySelectedEngineers() { //arrange var engineers = new SupportEngineerMocksBuilder() .WithEngineersWhoDidntHadShiftYesterday(8) .WithEngineersAlreadySelectedForToday(2) .Build(); var successor = A.Fake <ISupportEngineersFilterChain>(); var sut = new ShiftSelectedTodayFilter(successor); //act var result = sut.Filter(engineers); //assert result.First().Name .ShouldBe(nameof(SupportEngineerMocksBuilder.WithEngineersAlreadySelectedForToday)); result.Last().Name .ShouldBe(nameof(SupportEngineerMocksBuilder.WithEngineersAlreadySelectedForToday)); }