public void Should_return_false_when_it_has_a_prisoner_and_does_not_have_a_policeman() { var crewMembers = new List <CrewMember> { new Prisoner("prisoner") }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.False(result); }
public void Should_return_true_when_all_crew_members_are_allowed() { var crewMembers = new List <CrewMember> { new Pilot("pilot"), new Officer("flightAttendant"), }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.True(result); }
public void Should_return_true_when_it_has_a_prisoner_but_also_a_policeman() { var crewMembers = new List <CrewMember> { new Prisoner("prisoner"), new Policeman("policeman") }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.True(result); }
public void Should_return_false_when_two_incompatible_crew_members_are_alone() { var incompatibleCrewMembers = new List <CrewMember> { new Pilot("pilot"), new FlightAttendant("flightAttendant") }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(incompatibleCrewMembers); Assert.False(result); }
public void Should_return_false_when_it_has_more_than_two_crew_members_but_they_are_imcompatible() { var crewMembers = new List <CrewMember> { new Pilot("pilot"), new FlightAttendant("flightAttendant"), new FlightAttendant("flightAttendant") }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.False(result); }
public void Should_return_true_when_it_has_incompatible_crew_members_but_they_are_not_alone() { var crewMembers = new List <CrewMember> { new Pilot("pilot"), new FlightAttendant("flightAttendant"), new Officer("officer") }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.True(result); }
public void Should_disregard_null_elements() { var crewMembers = new List <CrewMember> { new Pilot("pilot"), new Officer("flightAttendant"), null }; var result = CrewChecker.CrewMembersAreAllowedToStayTogether(crewMembers); Assert.True(result); }
public TripDto Move(Place currentPlace, Place destinyPlace) { _tripInformerService.ShowMovementInfo(currentPlace, destinyPlace); if (!CurrentPlaceHasSmartFortwo(currentPlace)) { throw new Exception("The smart fortwo was not found!"); } if (!SmartFortwoAtCurrentPlaceHasDriver(currentPlace)) { throw new Exception("Smart Fortwo can't move without a driver"); } var currentPlaceMembersCanStayTogether = CrewChecker.CrewMembersAreAllowedToStayTogether(currentPlace.CrewMembers); var smartFortwoMembersCanStayTogether = CrewChecker.CrewMembersAreAllowedToStayTogether(currentPlace.GetSmartFortwoCrewMembers()); if (!currentPlaceMembersCanStayTogether || !smartFortwoMembersCanStayTogether) { throw new Exception("Some incompatible crew members are together alone or the prisoner is far from policeman"); } return(ChangePlaceOfSmartFortwo(currentPlace, destinyPlace)); }
public void Should_accept_null_crew_member_list() { var result = CrewChecker.CrewMembersAreAllowedToStayTogether(null); Assert.True(result); }