public void Filter_Given_null_Throws_NotEnoughEngineersException() { //arrange var sut = new ChooseTwoRandomEngineersFilter(); //act and assert Assert.Throws <NotEnoughEngineersException>(() => sut.Filter(null)); }
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_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_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); }