public void FlightValidationService_Should_Throw() { var now = DateTime.Now; var fvs = new FlightValidationService(); var correctOptions = new FlightValidationServiceOptions(new GroundTimeMoreThanValidator(TimeSpan.FromSeconds(1))); Assert.Throws <ArgumentNullException>("flights", () => fvs.Validate(null, correctOptions).FirstOrDefault()); var f = CreateFlights(5, i => Common.CreateFlight(now, TimeSpan.FromHours(i), TimeSpan.FromHours(i), TimeSpan.FromHours(i + 5), TimeSpan.FromHours(i + 6))); Assert.Throws <ArgumentNullException>("options", () => fvs.Validate(f, null).FirstOrDefault()); Assert.Throws <ArgumentNullException>("options", () => fvs.Validate(f, new FlightValidationServiceOptions(null)).FirstOrDefault()); Assert.Throws <ArgumentNullException>("flights", () => fvs.Validate(f.Prepend(null), correctOptions).FirstOrDefault()); Assert.Throws <ArgumentNullException>("flights", () => fvs.Validate(f.Prepend(new Flight { Segments = null }), correctOptions).FirstOrDefault()); Assert.Throws <ArgumentNullException>("flights", () => fvs.Validate(f.Prepend(new Flight { Segments = new List <Segment> { new Segment(), null } }), correctOptions).FirstOrDefault()); }
public void No_Flights_With_Zero_Ground_Time_Shoul_Be_Valid_And_Departure_Time_Earlier_Than_Passed() { var now = DateTime.Now; var fvs = new FlightValidationService(); //ground time 0 var f = CreateFlights(5, i => Common.CreateFlight(now, TimeSpan.FromHours(i), TimeSpan.FromHours(i), TimeSpan.FromHours(i), TimeSpan.FromHours(i + 1))); var options = new FlightValidationServiceOptions(new GroundTimeMoreThanValidator(TimeSpan.FromHours(1)), new AnyDepartureTimeEarlierThanValidator(now)); Assert.Empty(fvs.Validate(f, options)); //ground time 5 f = CreateFlights(5, i => Common.CreateFlight(now, TimeSpan.FromHours(i), TimeSpan.FromHours(i), TimeSpan.FromHours(i + 5), TimeSpan.FromHours(i + 6))); options = new FlightValidationServiceOptions(new GroundTimeMoreThanValidator(TimeSpan.FromHours(1)), new AnyDepartureTimeEarlierThanValidator(now.AddHours(2))); Assert.Equal(2, fvs.Validate(f, options).Count()); }