public void RemovedBrokenAssocationStops() { var service = TestSchedules.CreateServiceWithAssociation(); Assert.True(service.HasAssociations()); service.Associations[0].AsDynamic().Stop = null; var stop = TestSchedules.CreateResolvedDepartureStop(service); var notBroken = FilterBroken(new [] { stop }); Assert.False(notBroken[0].Service.HasAssociations()); }
public async Task DeparturesNowSetsReturnedCancelledFlag() { var returnedStop = TestSchedules.CreateResolvedDepartureStop(isCancelled: true); var data = CreateStubDataWithFindDepartures(returnedStops: new [] { returnedStop }); var controller = new DeparturesController(data, FilterFactory, _config.CreateMapper(), Substitute.For <ILogger>()); var response = await controller.Departures("SUR", returnCancelledServices : true) as ObjectResult; Assert.Equal(200, response.StatusCode); var services = response.Value as Model.FoundSummaryResponse; Assert.Single(services.Services); Assert.True(services.Services[0].Service.IsCancelled); }
public void BrokenAssociationsNotRemovedFromStopsIfReturningDebugResponses() { var service1 = TestSchedules.CreateServiceWithAssociation(); var stop1 = TestSchedules.CreateResolvedDepartureStop(service1); Assert.True(stop1.Service.HasAssociations()); service1.Associations[0].AsDynamic().Stop = null; var service2 = TestSchedules.CreateService("Z98765"); var stop2 = TestSchedules.CreateResolvedDepartureStop(service2); var filters = new ServiceFilters(true, Substitute.For <ILogger>()); var filtered = filters.Filter(new [] { stop1, stop2 }, true); Assert.True(stop1.Service.HasAssociations()); }
public void FilterStopsAlsoRemovesBrokenAssociations() { var service1 = TestSchedules.CreateServiceWithAssociation(); var stop1 = TestSchedules.CreateResolvedDepartureStop(service1); Assert.True(stop1.Service.HasAssociations()); service1.Associations[0].AsDynamic().Stop = null; var service2 = TestSchedules.CreateService("Z98765"); var stop2 = TestSchedules.CreateResolvedDepartureStop(service2); var filters = CreateFilter(); var filtered = filters.Filter(new [] { stop1, stop2 }, true); Assert.False(stop1.Service.HasAssociations()); }
private static ILocationData CreateStubDataWithFindDepartures(string atLocation = null, DateTime?atTime = null, GatherConfiguration config = null, FindStatus returnedStatus = FindStatus.Success, ResolvedServiceStop[] returnedStops = null) { atLocation = atLocation ?? Arg.Any <string>(); atTime = atTime ?? Arg.Any <DateTime>(); config = config ?? Arg.Any <GatherConfiguration>(); returnedStops = returnedStops ?? new [] { TestSchedules.CreateResolvedDepartureStop() }; var data = Substitute.For <ILocationData>(); data.FindDepartures(atLocation, atTime.Value, config) .Returns((returnedStatus, returnedStops)); data.Filters .Returns(Timetable.Test.Data.Filters.Instance); return(data); }
public void MultipleDepartureStopsCancelled() { ResolvedServiceStop[] services = { TestSchedules.CreateResolvedDepartureStop("A98765"), TestSchedules.CreateResolvedDepartureStop(isCancelled: true), TestSchedules.CreateResolvedDepartureStop("Z12345"), TestSchedules.CreateResolvedDepartureStop("X98765", isCancelled: true) }; var notCancelled = FilterCancelled(services); Assert.Equal(2, notCancelled.Length); Assert.Contains(services[0], notCancelled); Assert.Contains(services[2], notCancelled); }
public void DedupMultipleDifferentDepartureStops() { ResolvedServiceStop[] services = { TestSchedules.CreateResolvedDepartureStop("A98765"), TestSchedules.CreateResolvedDepartureStop(isCancelled: true), TestSchedules.CreateResolvedDepartureStop("Z12345"), TestSchedules.CreateResolvedDepartureStop("X98765", isCancelled: true) }; var deduped = Deduplicate(services); Assert.Equal(2, deduped.Length); Assert.Contains(services[0], deduped); Assert.Contains(services[2], deduped); }
private ResolvedServiceStop CreateClaphamResolvedStop(bool isCancelled = false) { return(TestSchedules.CreateResolvedDepartureStop(atLocation: TestStations.ClaphamJunction, when: TestSchedules.TenSixteen, isCancelled: isCancelled)); }