コード例 #1
0
        public void CreateNewTConnectRequestIfNeeded_2ndRqstForVehicle_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);

                    //Add a TConnectedVehicle row to simulate someone else already creating it,so that
                    //the one we add will grab a reference to this one instead of making one.
                    TConnectedVehicle newTv = new TConnectedVehicle();
                    newTv.OriginallyScheduledDeparture = steps[2].StartDate;
                    newTv.TConnectStopCode             = steps[2].FromStopCode;
                    newTv.ModifiedBy   = "test";
                    newTv.ModifiedDate = DateTime.UtcNow;
                    unitOfWork.Repository <TConnectedVehicle>().Insert(newTv);
                    unitOfWork.Save();

                    DateTime newEta = steps[0].EndDate.AddMinutes(11);//make sure we're late
                    CreateNewTConnectRequestIfNeeded(unitOfWork, mt, newEta, steps[2]);

                    TConnectRequest treq = unitOfWork.Repository <TConnectRequest>().Query().Get().First();
                    Assert.AreEqual(5, treq.RequestedHoldMinutes);
                    TConnectedVehicle tveh = unitOfWork.Repository <TConnectedVehicle>().Query().Get().First();
                    Assert.AreEqual(0, tveh.CurrentAcceptedHoldMinutes, "TConnectedVehicle instance should be created, but still have an accepted time of 0 since no requests have been accepted yet.");
                }
        }
コード例 #2
0
        public void MonitorTConnect_UpdateExistingTConnect_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);
                    DateTime newEta = ((DateTime)mt.StartWindow).AddMinutes(3);

                    //Add a TconnectRequest so the path follows the update path
                    TConnectRequest newRequest = new TConnectRequest();


                    //newRequest.TConnectedVehicleId = GetOrCreateTConnectedVehicleKey(Uow, outboundStep);
                    newRequest.TConnectId           = mt.Id;
                    newRequest.EstimatedTimeArrival = newEta;
                    //Calculate how late we'll be
                    newRequest.RequestedHoldMinutes = 2;
                    newRequest.TConnectStatusId     = (int)TConnectStatuses.New;//new request
                    unitOfWork.Repository <TConnectRequest>().Insert(newRequest);
                    unitOfWork.Save();

                    MonitorTConnect(unitOfWork, mt, newEta);

                    var treq = unitOfWork.Repository <TConnectRequest>().Query().Get();
                    Assert.AreEqual(1, treq.Count(), "Only one TConnectRequest should be existing.");
                    TConnectRequest request = treq.First();
                    Assert.AreEqual(3, request.RequestedHoldMinutes, "Existing TConnectRequest should have been updated to 3 minutes");
                    Assert.AreEqual((int)TConnectStatuses.New, request.TConnectStatusId, "Status should be new");
                }
        }
コード例 #3
0
        public void ResolveVehicleLocationProviderType_Cabs_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Step stepEntity = new Step();
                    stepEntity.StepNumber     = 1;
                    stepEntity.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    stepEntity.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    stepEntity.FromName       = "Quartz Street";
                    stepEntity.FromProviderId = (int)Providers.CABS;
                    stepEntity.FromStopCode   = "1001";
                    stepEntity.ModeId         = (int)Modes.Bus;
                    stepEntity.RouteNumber    = "039";
                    stepEntity.Distance       = (decimal)12.2;
                    stepEntity.ToName         = "Slate Run Road";
                    stepEntity.ToProviderId   = (int)Providers.CABS;
                    stepEntity.ToStopCode     = "2002";

                    unitOfWork.Repository <Step>().Insert(stepEntity);
                    unitOfWork.Save();

                    TConnect tconn = new TConnect();
                    tconn.InboundStepId = stepEntity.Id;

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();

                    IVehicleLocation iv = VehicleLocationMonitorWorker.ResolveVehicleLocationProviderType(tconn, unitOfWork, scheduleFakes);
                    Assert.AreEqual(iv.ProviderName, Providers.CABS);
                }
        }
コード例 #4
0
ファイル: ProbeControllerTests.cs プロジェクト: OSADP/archive
        public void PostProbeData_MissingInboundVehicle_Fails()
        {
            ProbeVehicleData probeData = new ProbeVehicleData();

            PositionSnapshot ps = new PositionSnapshot()
            {
                Accuracy   = 5,
                Altitude   = 123,
                Heading    = 180,
                Latitude   = 44.646581369493,
                Longitude  = -96.6830267664,
                Satellites = 0,
                Speed      = 14.77999305725097,
                TimeStamp  = 137349837631
            };

            probeData.Positions.Add(ps);

            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork imuow = new UnitOfWork(idtoFakeContext))
                {
                    var mockTable = new Mock <IAzureTable <ProbeSnapshotEntry> >();
                    var cut       = new ProbeController(idtoFakeContext, mockTable.Object);

                    SetupControllerForTests(cut);

                    HttpResponseMessage returnMessage = cut.PostProbeData(probeData);

                    Assert.AreEqual(HttpStatusCode.BadRequest, returnMessage.StatusCode);
                }
        }
コード例 #5
0
ファイル: TripServiceTest.cs プロジェクト: OSADP/archive
        public void SaveTrip_1TConnect_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Trip        tripEntity = TestData.GetTrip();
                    List <Step> steps      = TestData.GetSteps();//trips and steps get added in savetrip service call

                    TConnectOpportunity TConnOpp = TestData.GetTConnectOpportunity();
                    unitOfWork.Repository <TConnectOpportunity>().Insert(TConnOpp);

                    //TConnectOpportunity TConnOpp2 = new TConnectOpportunity();
                    //TConnOpp2.Id = 1;
                    //TConnOpp2.ModifiedBy = "Nunit";
                    //TConnOpp2.ModifiedDate = DateTime.UtcNow;
                    //TConnOpp2.CheckpointProviderId = 1;
                    //TConnOpp2.CheckpointStopCode = "2002";
                    //TConnOpp2.CheckpointRoute = "";
                    //TConnOpp2.TConnectProviderId = 1;
                    //TConnOpp2.TConnectStopCode = "8888";
                    //TConnOpp2.TConnectRoute = "426";
                    //unitOfWork.Repository<TConnectOpportunity>().Insert(TConnOpp2);

                    unitOfWork.Save();

                    ITripService tripService = new TripService(5);
                    int          id          = tripService.SaveTrip(tripEntity, steps, unitOfWork);

                    Assert.AreEqual(1, unitOfWork.Repository <TConnect>().Query().Get().Count());
                    Assert.AreEqual("Trip Created", unitOfWork.Repository <TripEvent>().Query().Get().First().Message);
                    Assert.AreEqual("T-Connect Created", unitOfWork.Repository <TripEvent>().Query().Get().Last().Message);
                }
        }
コード例 #6
0
        public void ListVehicles_SameBus_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    //Setup
                    TConnectedVehicle vehicleEnt1 = new TConnectedVehicle();
                    vehicleEnt1.Id = 1;
                    TConnectRequest reqEnt1 = new TConnectRequest();
                    reqEnt1.TConnectedVehicleId = vehicleEnt1.Id;
                    reqEnt1.TConnectStatusId    = (int)TConnectStatuses.New;

                    unitOfWork.Repository <TConnectedVehicle>().Insert(vehicleEnt1);
                    unitOfWork.Repository <TConnectRequest>().Insert(reqEnt1);
                    unitOfWork.Save();


                    TConnectRequest reqEnt2 = new TConnectRequest();
                    reqEnt2.TConnectedVehicleId = vehicleEnt1.Id;
                    reqEnt2.TConnectStatusId    = (int)TConnectStatuses.New;

                    unitOfWork.Repository <TConnectRequest>().Insert(reqEnt2);
                    unitOfWork.Save();


                    TConnectedVehicleController  tvCont   = new TConnectedVehicleController(unitOfWork);
                    List <TConnVehicleViewModel> vehicles = tvCont.GetVehiclesWithPendingRequests();
                    Assert.AreEqual(1, vehicles.Count());
                    Assert.AreEqual(2, vehicles[0].NumberRequests, "This bus should have two requests");
                }
        }
コード例 #7
0
        public void SetupNewTConnects_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Traveler traveler = new Traveler();
                    traveler.Id       = 1;
                    traveler.LastName = "MDT2";

                    Trip trip = new Trip();
                    trip.Id            = 1;
                    trip.TripStartDate = DateTime.Parse("1/1/2014 10:40");
                    trip.TravelerId    = traveler.Id;
                    trip.Traveler      = traveler;//must set object for navigation property or lazy loading wont work for mock.


                    Step stepEntity = new Step();
                    stepEntity.Id             = 1;
                    stepEntity.StepNumber     = 1;
                    stepEntity.TripId         = trip.Id;
                    stepEntity.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    stepEntity.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    stepEntity.FromName       = "Quartz Street";
                    stepEntity.FromProviderId = (int)Providers.CapTrans;
                    stepEntity.FromStopCode   = "1001";
                    stepEntity.ModeId         = (int)Modes.Bus;
                    stepEntity.RouteNumber    = "039";
                    stepEntity.Distance       = (decimal)12.2;
                    stepEntity.ToName         = "Slate Run Road";
                    stepEntity.ToProviderId   = (int)Providers.CapTrans;
                    stepEntity.ToStopCode     = "2002";
                    stepEntity.Trip           = trip;//must set object for navigation property or lazy loading wont work for mock.

                    TConnect tconn = new TConnect();
                    tconn.Id = 1;
                    tconn.TConnectStatusId = (int)TConnectStatuses.New;
                    tconn.InboundStepId    = stepEntity.Id;
                    tconn.InboundStep      = stepEntity;//must set object for navigation property or lazy loading wont work for mock.

                    unitOfWork.Repository <Traveler>().Insert(traveler);

                    unitOfWork.Repository <Trip>().Insert(trip);

                    unitOfWork.Repository <Step>().Insert(stepEntity);

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();

                    List <TConnect> newTconnects = unitOfWork.Repository <TConnect>().Query().Include(i => i.InboundStep.Trip.Traveler).Get()
                                                   .Where(s => s.TConnectStatusId == (int)TConnectStatuses.New).ToList();

                    TConnectMonitorWorker worker = new TConnectMonitorWorker(null);
                    worker.SetupNewTConnects(unitOfWork);

                    List <TConnect> monitoredTConnects = unitOfWork.Repository <TConnect>().Query().Get()
                                                         .Where(s => s.TConnectStatusId == (int)TConnectStatuses.Monitored).ToList();

                    Assert.AreEqual(1, monitoredTConnects.Count);
                }
        }
コード例 #8
0
ファイル: IDTOContextTest.cs プロジェクト: OSADP/archive
        public void BasicRepositoryInsertDeleteAndQueryTest_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    unitOfWork.Repository <Traveler>().Insert(new Traveler {
                        Id = 1, FirstName = "TestFN", LastName = "TestLN", ObjectState = ObjectState.Added
                    });

                    unitOfWork.Save();
                    //Test

                    var traveler1 = unitOfWork.Repository <Traveler>().Find(1);

                    Assert.AreEqual("TestFN", traveler1.FirstName);

                    unitOfWork.Repository <Traveler>().Delete(1);

                    unitOfWork.Save();

                    var traveler2 = unitOfWork.Repository <Traveler>().Find(1);


                    Assert.IsNull(traveler2);
                }
        }
コード例 #9
0
        public void PostTripAddInvalidTraveler_Fails()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    unitOfWork.Repository <Traveler>().Insert(new Traveler {
                        Id = 1, FirstName = "TestFN", LastName = "TestLN", ObjectState = ObjectState.Added
                    });
                    unitOfWork.Save();
                    var controller = new TripController(idtoFakeContext);
                    SetupControllerForTests(controller);

                    TripModel m = new TripModel
                    {
                        TravelerId    = 50,
                        Origination   = "Neverland",
                        Destination   = "Montana",
                        TripStartDate = DateTime.Parse("10/2/2012"),
                        TripEndDate   = DateTime.Parse("10/2/2013"),
                        MobilityFlag  = true,
                        BicycleFlag   = true,
                        PriorityCode  = "1"
                    };
                    List <StepModel> steps     = new List <StepModel>();
                    StepModel        stepmodel = new StepModel();
                    stepmodel.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    stepmodel.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    stepmodel.FromName       = "Quartz Street";
                    stepmodel.FromProviderId = (int)Providers.COTA;
                    stepmodel.FromStopCode   = "1001";
                    stepmodel.ModeId         = (int)Modes.Bus;
                    stepmodel.RouteNumber    = "039";
                    stepmodel.Distance       = (decimal)12.2;
                    stepmodel.ToName         = "Slate Run Road";
                    stepmodel.ToProviderId   = (int)Providers.COTA;
                    stepmodel.ToStopCode     = "2002";
                    steps.Add(stepmodel);
                    m.Steps = steps;
                    try
                    {
                        var actionResult = controller.PostTrip(m);
                        Assert.AreEqual(true, false, "Test should have thrown an exception and not executed this line.");
                    }
                    catch (HttpResponseException ex)
                    {
                        Assert.AreEqual(HttpStatusCode.NotFound, ex.Response.StatusCode);
                    }

                    //               var response = actionResult as OkNegotiatedContentResult<IEnumerable<Trip>>;
                    //     Assert.IsNotNull(response);
                    //    var books = response.Content;
                    //Assert.AreEqual(5, books.Count());


                    //      var response = actionResult as NotFoundResult;
                    //             Assert.IsNotNull(response);
                }
        }
コード例 #10
0
ファイル: TripServiceTest.cs プロジェクト: OSADP/archive
        public void SaveTrip_2TConnect_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Trip tripEntity = TestData.GetTrip();
                    tripEntity.TripEndDate = DateTime.Parse("1/1/2014 11:32");
                    //add fourth leg to trip to test steps loop, get back on the same stop, different bus route.
                    List <Step> steps       = TestData.GetSteps();
                    Step        stepEntity4 = new Step();
                    stepEntity4.StepNumber     = steps.Count + 1;
                    stepEntity4.StartDate      = DateTime.Parse("1/1/2014 11:02");
                    stepEntity4.EndDate        = DateTime.Parse("1/1/2014 11:32");
                    stepEntity4.FromName       = "Quarry Corner";
                    stepEntity4.FromProviderId = (int)Providers.COTA;
                    stepEntity4.FromStopCode   = "4004";
                    stepEntity4.ModeId         = (int)Modes.Bus;
                    stepEntity4.RouteNumber    = "500";
                    stepEntity4.Distance       = (decimal)12.2;
                    stepEntity4.ToName         = "Calcite Creek Drive";
                    stepEntity4.ToProviderId   = (int)Providers.COTA;
                    stepEntity4.ToStopCode     = "5005";
                    steps.Add(stepEntity4);

                    TConnectOpportunity TConnOpp = new TConnectOpportunity();
                    TConnOpp.Id                   = 1;
                    TConnOpp.ModifiedBy           = "Nunit";
                    TConnOpp.ModifiedDate         = DateTime.UtcNow;
                    TConnOpp.CheckpointProviderId = 1;
                    TConnOpp.CheckpointStopCode   = "2002";
                    TConnOpp.CheckpointRoute      = "";
                    TConnOpp.TConnectProviderId   = 1;
                    TConnOpp.TConnectStopCode     = "3003";
                    TConnOpp.TConnectRoute        = "426";
                    unitOfWork.Repository <TConnectOpportunity>().Insert(TConnOpp);

                    TConnectOpportunity TConnOpp2 = new TConnectOpportunity();
                    TConnOpp2.Id                   = 1;
                    TConnOpp2.ModifiedBy           = "Nunit";
                    TConnOpp2.ModifiedDate         = DateTime.UtcNow;
                    TConnOpp2.CheckpointProviderId = 1;
                    TConnOpp2.CheckpointStopCode   = "4004";
                    TConnOpp2.CheckpointRoute      = "";
                    TConnOpp2.TConnectProviderId   = 1;
                    TConnOpp2.TConnectStopCode     = "4004";
                    TConnOpp2.TConnectRoute        = "500";
                    unitOfWork.Repository <TConnectOpportunity>().Insert(TConnOpp2);

                    unitOfWork.Save();

                    ITripService tripService = new TripService(5);
                    int          id          = tripService.SaveTrip(tripEntity, steps, unitOfWork);

                    Assert.AreEqual(2, unitOfWork.Repository <TConnect>().Query().Get().Count());
                }
        }
コード例 #11
0
        public void GetTConnectRequestsTest()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    var requests = unitOfWork.Repository <TConnectRequest>().Query().Get().ToList();

                    Assert.IsTrue(requests.Count > 0);
                }
        }
コード例 #12
0
ファイル: ProbeControllerTests.cs プロジェクト: OSADP/archive
        public void PostProbeData_UpdateVehiclePosition_Success()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork imuow = new UnitOfWork(idtoFakeContext))
                {
                    AddTripToRepo(imuow);

                    LastVehiclePosition lvp = new LastVehiclePosition
                    {
                        VehicleName       = "MDT2",
                        PositionTimestamp = DateTime.UtcNow,
                        Latitude          = 44.646581369493,
                        Longitude         = -96.6830267664,
                        Speed             = 10,
                        Heading           = 180,
                        Accuracy          = 5
                    };

                    imuow.Repository <LastVehiclePosition>().Insert(lvp);
                    imuow.Save();

                    DateTime newestPositionTimestamp = DateTime.UtcNow.AddMinutes(1);
                    var      epoch           = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                    long     newestTimeStamp = Convert.ToInt64((newestPositionTimestamp - epoch).TotalMilliseconds);

                    ProbeVehicleData probeData = new ProbeVehicleData {
                        InboundVehicle = "MDT2"
                    };
                    PositionSnapshot ps = new PositionSnapshot()
                    {
                        Accuracy   = 5,
                        Altitude   = 123,
                        Heading    = 180,
                        Latitude   = 44.646581369493,
                        Longitude  = -96.6830267664,
                        Satellites = 0,
                        Speed      = 14.77999305725097,
                        TimeStamp  = newestTimeStamp
                    };
                    probeData.Positions.Add(ps);

                    var mockTable = new Mock <IAzureTable <ProbeSnapshotEntry> >();
                    var cut       = new ProbeController(idtoFakeContext, mockTable.Object);

                    SetupControllerForTests(cut);

                    HttpResponseMessage returnMessage = cut.PostProbeData(probeData);

                    List <LastVehiclePosition> lvpList = imuow.Repository <LastVehiclePosition>().Query().Get().Where(v => v.VehicleName == "MDT2").ToList();

                    Assert.AreEqual(1, lvpList.Count);
                    Assert.AreEqual(newestPositionTimestamp.ToLongTimeString(), lvpList.First().PositionTimestamp.ToLongTimeString());
                }
        }
コード例 #13
0
        public void SendStartTripNotification_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    Trip        trip;

                    SetupUowForNotificationTest(unitOfWork, out trip, out steps);
                    SendTripStartNotifications(unitOfWork);
                }
        }
コード例 #14
0
        public void PostTripAdd_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    unitOfWork.Repository <Traveler>().Insert(new Traveler {
                        Id = 1, FirstName = "TestFN", LastName = "TestLN", ObjectState = ObjectState.Added
                    });
                    unitOfWork.Save();
                    var controller = new TripController(idtoFakeContext);
                    SetupControllerForTests(controller);

                    TripModel m = new TripModel
                    {
                        TravelerId    = 1,
                        Origination   = "Neverland",
                        Destination   = "Montana",
                        TripStartDate = DateTime.Parse("1/2/2014"),
                        TripEndDate   = DateTime.Parse("1/3/2014"),
                        MobilityFlag  = true,
                        BicycleFlag   = true,
                        PriorityCode  = "1"
                    };
                    List <StepModel> steps     = new List <StepModel>();
                    StepModel        stepmodel = new StepModel();
                    stepmodel.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    stepmodel.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    stepmodel.FromName       = "Quartz Street";
                    stepmodel.FromProviderId = (int)Providers.COTA;
                    stepmodel.FromStopCode   = "1001";
                    stepmodel.ModeId         = (int)Modes.Bus;
                    stepmodel.RouteNumber    = "039";
                    stepmodel.Distance       = (decimal)12.2;
                    stepmodel.ToName         = "Slate Run Road";
                    stepmodel.ToProviderId   = (int)Providers.COTA;
                    stepmodel.ToStopCode     = "2002";
                    steps.Add(stepmodel);
                    m.Steps = steps;
                    try
                    {
                        var actionResult = controller.PostTrip(m);
                        var response     = actionResult as CreatedAtRouteNegotiatedContentResult <TripModel>;
                        Assert.IsNotNull(response);
                        var trips = response.Content;
                        Assert.AreEqual("Neverland", trips.Origination);
                    }
                    catch (HttpResponseException ex)
                    {
                        Assert.Fail();
                    }
                }
        }
コード例 #15
0
        public void GetCoordForOutboundStep_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Step inbound = new Step();
                    inbound.Id             = inbound.StepNumber = 1;
                    inbound.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    inbound.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    inbound.FromName       = "Quartz Street";
                    inbound.FromProviderId = (int)Providers.CapTrans;
                    inbound.FromStopCode   = "1001";
                    inbound.ModeId         = (int)Modes.Bus;
                    inbound.RouteNumber    = "039";
                    inbound.Distance       = (decimal)12.2;
                    inbound.ToName         = "Broad St Gate";
                    inbound.ToProviderId   = (int)Providers.CapTrans;
                    inbound.ToStopCode     = "DCSCBRD1";

                    Step outbound = new Step();
                    outbound.Id             = outbound.StepNumber = 2;
                    outbound.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    outbound.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    outbound.FromName       = "Broad St Gate";
                    outbound.FromProviderId = (int)Providers.CapTrans;
                    outbound.FromStopCode   = "DCSCBRD1";
                    outbound.ModeId         = (int)Modes.Bus;
                    outbound.RouteNumber    = "039";
                    outbound.Distance       = (decimal)12.2;
                    outbound.ToName         = "Slate Run Road";
                    outbound.ToProviderId   = (int)Providers.CapTrans;
                    outbound.ToStopCode     = "DCSCBRD1";
                    unitOfWork.Repository <Step>().Insert(inbound);
                    unitOfWork.Save();

                    TConnect tconn = new TConnect();
                    tconn.InboundStepId  = inbound.Id;
                    tconn.OutboundStepId = outbound.Id;
                    tconn.InboundStep    = inbound;
                    tconn.OutboundStep   = outbound;

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();

                    GeoCoordinate mainGate = new GeoCoordinate {
                        Latitude = 39.975148, Longitude = -82.894379
                    };
                    GeoCoordinate coord = GetCoordForInboundStep(tconn, unitOfWork);

                    Assert.AreEqual(coord, mainGate);
                }
        }
コード例 #16
0
        public void PostTripLoadLikeGSON_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    unitOfWork.Repository <Traveler>().Insert(new Traveler {
                        Id = 1003, FirstName = "TestFN", LastName = "TestLN", ObjectState = ObjectState.Added
                    });
                    unitOfWork.Save();
                    var controller = new TripController(idtoFakeContext);
                    SetupControllerForTests(controller);

                    //TripModel m = new TripModel
                    //{
                    //    TravelerId = 1,
                    //    Origination = "Neverland",
                    //    Destination = "Montana",
                    //    TripStartDate = DateTime.Parse("1/2/2014"),
                    //    TripEndDate = DateTime.Parse("1/3/2014"),
                    //    MobilityFlag = true,
                    //    BicycleFlag = true,
                    //    PriorityCode = "1"
                    //};

                    //StepModel


                    // convert string to stream
                    byte[] byteArray = Encoding.UTF8.GetBytes(GSONcontents);
                    //byte[] byteArray = Encoding.ASCII.GetBytes(contents);
                    MemoryStream jsonStream = new MemoryStream(byteArray);

                    DataContractJsonSerializer serializer =
                        new DataContractJsonSerializer(typeof(TripModel));

                    // TripModel trip = (TripModel)serializer.ReadObject(jsonStream);
                    TripModel trip = Deserialize <TripModel>(GSONcontents);
                    try
                    {
                        var actionResult = controller.PostTrip(trip);
                        var response     = actionResult as CreatedAtRouteNegotiatedContentResult <TripModel>;
                        Assert.IsNotNull(response);
                        var trips = response.Content;
                        Assert.AreEqual("DCSC", trips.Origination);
                    }
                    catch (HttpResponseException ex)
                    {
                        Assert.Fail();
                    }
                }
        }
コード例 #17
0
        public void ListVehicles_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    //Setup
                    TConnectedVehicle vehicleEnt1 = new TConnectedVehicle();
                    vehicleEnt1.Id = 1;
                    TConnect tc = new TConnect {
                        Id = 1, TConnectStatusId = (int)TConnectStatuses.Monitored
                    };
                    unitOfWork.Repository <TConnect>().Insert(tc);
                    TConnectRequest reqEnt1 = new TConnectRequest();
                    reqEnt1.TConnectedVehicleId = vehicleEnt1.Id;
                    reqEnt1.TConnectId          = tc.Id;
                    reqEnt1.TConnectStatusId    = (int)TConnectStatuses.New;

                    unitOfWork.Repository <TConnectedVehicle>().Insert(vehicleEnt1);
                    unitOfWork.Repository <TConnectRequest>().Insert(reqEnt1);
                    unitOfWork.Save();

                    TConnectedVehicle vehicleEnt2 = new TConnectedVehicle();
                    vehicleEnt2.Id = 2;
                    TConnect tc2 = new TConnect {
                        Id = 2, TConnectStatusId = (int)TConnectStatuses.Monitored
                    };
                    unitOfWork.Repository <TConnect>().Insert(tc2);
                    TConnectRequest reqEnt2 = new TConnectRequest();
                    reqEnt2.TConnectedVehicleId = vehicleEnt2.Id;
                    reqEnt2.TConnectId          = tc2.Id;
                    reqEnt2.TConnectStatusId    = (int)TConnectStatuses.New;

                    unitOfWork.Repository <TConnectedVehicle>().Insert(vehicleEnt2);
                    unitOfWork.Repository <TConnectRequest>().Insert(reqEnt2);
                    unitOfWork.Save();

                    var bc = unitOfWork.Repository <TConnect>().Query().Get()
                             .Where(r => r.TConnectStatusId.Equals((int)TConnectStatuses.Monitored)).ToList();

                    var vehicleidsWithNew = unitOfWork.Repository <TConnectRequest>().Query().Get().Include(r => r.TConnect)
                                            .Where(r => r.TConnectStatusId.Equals((int)TConnectStatuses.New)
                                                   // && r.TConnect.TConnectStatusId.Equals((int)TConnectStatuses.Monitored)
                                                   )
                                            .Select(r => r.TConnectedVehicleId).Distinct();
                    int a = vehicleidsWithNew.Count();
                    //.Include does not work on Fake Repository!
                    TConnectedVehicleController  tvCont   = new TConnectedVehicleController(unitOfWork);
                    List <TConnVehicleViewModel> vehicles = tvCont.GetVehiclesWithPendingRequests();
                    Assert.AreEqual(2, vehicles.Count());
                }
        }
コード例 #18
0
        public void SetupNewTConnects_NoAction()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Traveler traveler = new Traveler();
                    traveler.Id       = 1;
                    traveler.LastName = "MDT2";

                    Trip trip = new Trip();
                    trip.Id            = 1;
                    trip.TripStartDate = DateTime.UtcNow.AddMinutes(20); //make in future
                    trip.TravelerId    = traveler.Id;
                    trip.Traveler      = traveler;                       //must set object for navigation property or lazy loading wont work for mock.


                    Step stepEntity = new Step();
                    stepEntity.Id         = 1;
                    stepEntity.StepNumber = 1;
                    stepEntity.TripId     = trip.Id;

                    stepEntity.Trip = trip;//must set object for navigation property or lazy loading wont work for mock.

                    TConnect tconn = new TConnect();
                    tconn.Id = 1;
                    tconn.TConnectStatusId = (int)TConnectStatuses.New;
                    tconn.InboundStepId    = stepEntity.Id;
                    tconn.InboundStep      = stepEntity;//must set object for navigation property or lazy loading wont work for mock.

                    unitOfWork.Repository <Traveler>().Insert(traveler);

                    unitOfWork.Repository <Trip>().Insert(trip);

                    unitOfWork.Repository <Step>().Insert(stepEntity);

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();

                    List <TConnect> newTconnects = unitOfWork.Repository <TConnect>().Query().Include(i => i.InboundStep.Trip.Traveler).Get()
                                                   .Where(s => s.TConnectStatusId == (int)TConnectStatuses.New).ToList();

                    TConnectMonitorWorker worker = new TConnectMonitorWorker(new List <BusScheduleInterface.IBusSchedule>(new StubIBusSchedule[] { new StubIBusSchedule() }));
                    worker.SetupNewTConnects(unitOfWork);

                    List <TConnect> monitoredTConnects = unitOfWork.Repository <TConnect>().Query().Get()
                                                         .Where(s => s.TConnectStatusId == (int)TConnectStatuses.New).ToList();

                    Assert.AreEqual(1, monitoredTConnects.Count);
                }
        }
コード例 #19
0
        public void MonitorTConnect_NoExistingTConnect_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);
                    DateTime newEta = steps[0].EndDate;
                    MonitorTConnect(unitOfWork, mt, newEta);

                    var treq = unitOfWork.Repository <TConnectRequest>().Query().Get();
                    Assert.AreEqual(0, treq.Count(), "No TConnectRequest should be created.");
                }
        }
コード例 #20
0
        public void TConnect_NoRequest_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    TConnect tc = new TConnect {
                        Id = 1, TConnectStatusId = (int)TConnectStatuses.New
                    };
                    unitOfWork.Repository <TConnect>().Insert(tc);
                    unitOfWork.Save();

                    var controller = new TConnectController(idtoFakeContext);
                    int status     = (int)controller.DeduceExternalStatusForTConnect(tc);
                    Assert.AreEqual((int)TConnectStatusModel.Status.Monitored, status);
                }
        }
コード例 #21
0
        public void TConnect_InProgress_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Trip t = new Trip {
                        Id = 1, TripStartDate = DateTime.UtcNow.AddHours(-1), TripEndDate = DateTime.UtcNow.AddHours(1)
                    };
                    unitOfWork.Repository <Trip>().Insert(t);
                    unitOfWork.Save();

                    var controller = new TConnectController(idtoFakeContext);
                    var status     = controller.Get(t.Id).First();
                    Assert.AreEqual((int)TConnectStatusModel.Status.InProgress, status.TConnectStatusId);
                }
        }
コード例 #22
0
        public void GetCoordForOutboundStep_ThrowsEx()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Step inbound = new Step();
                    inbound.Id             = inbound.StepNumber = 1;
                    inbound.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    inbound.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    inbound.FromName       = "Quartz Street";
                    inbound.FromProviderId = (int)Providers.CapTrans;
                    inbound.FromStopCode   = "1001";
                    inbound.ModeId         = (int)Modes.Bus;
                    inbound.RouteNumber    = "039";
                    inbound.Distance       = (decimal)12.2;
                    inbound.ToName         = "Slate Run Road";
                    inbound.ToProviderId   = (int)Providers.CapTrans;
                    inbound.ToStopCode     = "2002";

                    Step outbound = new Step();
                    outbound.Id             = outbound.StepNumber = 2;
                    outbound.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    outbound.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    outbound.FromName       = "NotMain Gate";//change gate FromName so that it does not match the list.
                    outbound.FromProviderId = (int)Providers.CapTrans;
                    outbound.FromStopCode   = "1001";
                    outbound.ModeId         = (int)Modes.Bus;
                    outbound.RouteNumber    = "039";
                    outbound.Distance       = (decimal)12.2;
                    outbound.ToName         = "Slate Run Road";
                    outbound.ToProviderId   = (int)Providers.CapTrans;
                    outbound.ToStopCode     = "2002";
                    unitOfWork.Repository <Step>().Insert(inbound);
                    unitOfWork.Save();

                    TConnect tconn = new TConnect();
                    tconn.InboundStepId  = inbound.Id;
                    tconn.OutboundStepId = outbound.Id;
                    tconn.InboundStep    = inbound;
                    tconn.OutboundStep   = outbound;

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();

                    Assert.Throws <NotImplementedException>(delegate { GetCoordForInboundStep(tconn, unitOfWork); });
                }
        }
コード例 #23
0
        public void CreateNewTConnectRequestIfNeeded_AddsRequest_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);

                    DateTime newEta = steps[0].EndDate.AddMinutes(11);//make sure we're late
                    CreateNewTConnectRequestIfNeeded(unitOfWork, mt, newEta, steps[2]);

                    TConnectRequest treq = unitOfWork.Repository <TConnectRequest>().Query().Get().First();
                    Assert.AreEqual(5, treq.RequestedHoldMinutes);
                    TConnectedVehicle tveh = unitOfWork.Repository <TConnectedVehicle>().Query().Get().First();
                    Assert.AreEqual(0, tveh.CurrentAcceptedHoldMinutes, "TConnectedVehicle instance should be created, but still have an accepted time of 0 since no requests have been accepted yet.");
                }
        }
コード例 #24
0
        public void CreateNewTConnectRequestIfNeeded_TooLate_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);

                    DateTime newEta = steps[0].EndDate.AddMinutes(25);//make sure we're really late
                    CreateNewTConnectRequestIfNeeded(unitOfWork, mt, newEta, steps[2]);

                    var treq = unitOfWork.Repository <TConnectRequest>().Query().Get();
                    Assert.AreEqual(0, treq.Count(), "No TConnectRequest should be created.");
                    var mtnew = unitOfWork.Repository <TConnect>().Query().Get().First();
                    Assert.AreEqual((int)TConnectStatuses.Done, mtnew.TConnectStatusId, "Status of a missed connection should be Done.");
                }
        }
コード例 #25
0
        public void DoneTConnect_AcceptedRequest_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    TConnect tc = new TConnect {
                        Id = 1, TConnectStatusId = (int)TConnectStatuses.Done
                    };
                    unitOfWork.Repository <TConnect>().Insert(tc);
                    TConnectRequest tr = new TConnectRequest {
                        TConnectId = tc.Id, TConnectStatusId = (int)TConnectStatuses.Accepted
                    };
                    unitOfWork.Repository <TConnectRequest>().Insert(tr);
                    unitOfWork.Save();

                    var controller = new TConnectController(idtoFakeContext);
                    int status     = (int)controller.DeduceExternalStatusForTConnect(tc);
                    Assert.AreEqual((int)TConnectStatusModel.Status.Accepted, status);
                }
        }
コード例 #26
0
ファイル: TripServiceTest.cs プロジェクト: OSADP/archive
        public void SaveTrip_0TConnect_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Trip tripEntity = TestData.GetTrip();

                    List <Step> steps = TestData.GetSteps();

                    TConnectOpportunity TConnOpp = new TConnectOpportunity();
                    TConnOpp.Id                   = 1;
                    TConnOpp.ModifiedBy           = "Nunit";
                    TConnOpp.ModifiedDate         = DateTime.UtcNow;
                    TConnOpp.CheckpointProviderId = 1;
                    TConnOpp.CheckpointStopCode   = "5555";
                    TConnOpp.CheckpointRoute      = "";
                    TConnOpp.TConnectProviderId   = 1;
                    TConnOpp.TConnectStopCode     = "6666";
                    TConnOpp.TConnectRoute        = "426";
                    unitOfWork.Repository <TConnectOpportunity>().Insert(TConnOpp);

                    TConnectOpportunity TConnOpp2 = new TConnectOpportunity();
                    TConnOpp2.Id                   = 2;
                    TConnOpp2.ModifiedBy           = "Nunit";
                    TConnOpp2.ModifiedDate         = DateTime.UtcNow;
                    TConnOpp2.CheckpointProviderId = 1;
                    TConnOpp2.CheckpointStopCode   = "7777";
                    TConnOpp2.CheckpointRoute      = "";
                    TConnOpp2.TConnectProviderId   = 1;
                    TConnOpp2.TConnectStopCode     = "8888";
                    TConnOpp2.TConnectRoute        = "426";
                    unitOfWork.Repository <TConnectOpportunity>().Insert(TConnOpp2);

                    unitOfWork.Save();

                    ITripService tripService = new TripService(5);
                    int          id          = tripService.SaveTrip(tripEntity, steps, unitOfWork);

                    Assert.AreEqual(0, unitOfWork.Repository <TConnect>().Query().Get().Count());
                }
        }
コード例 #27
0
        public void ResolveVehicleLocationProviderType_Other_Fails()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    Step stepEntity = new Step();
                    stepEntity.StepNumber     = 1;
                    stepEntity.StartDate      = DateTime.Parse("1/1/2014 10:02");
                    stepEntity.EndDate        = DateTime.Parse("1/1/2014 10:40");
                    stepEntity.FromName       = "Quartz Street";
                    stepEntity.FromProviderId = (int)Providers.COTA;
                    stepEntity.FromStopCode   = "1001";
                    stepEntity.ModeId         = (int)Modes.Bus;
                    stepEntity.RouteNumber    = "039";
                    stepEntity.Distance       = (decimal)12.2;
                    stepEntity.ToName         = "Slate Run Road";
                    stepEntity.ToProviderId   = (int)Providers.COTA;
                    stepEntity.ToStopCode     = "2002";

                    unitOfWork.Repository <Step>().Insert(stepEntity);
                    unitOfWork.Save();

                    TConnect tconn = new TConnect();
                    tconn.InboundStepId = stepEntity.Id;

                    unitOfWork.Repository <TConnect>().Insert(tconn);
                    unitOfWork.Save();
                    try
                    {
                        IVehicleLocation iv = VehicleLocationMonitorWorker.ResolveVehicleLocationProviderType(tconn, unitOfWork, scheduleFakes);
                        Assert.AreEqual(true, false, "Test should have thrown an exception and not executed this line.");
                    }
                    catch (Exception ex)
                    {
                        //unhandled type
                    }
                }
        }
コード例 #28
0
 public void CalcPointAEtaFromPointA_Passes()
 {
     using (IDbContext idtoFakeContext = new IDTOFakeContext())
         using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
         {
             DateTime      date       = new DateTime(2014, 1, 1, 12, 0, 0);
             GeoCoordinate currentLoc = new GeoCoordinate {
                 Latitude = 39.975148, Longitude = -82.894379
             };
             GeoCoordinate destinationLoc = new GeoCoordinate {
                 Latitude = 39.875148, Longitude = -82.894379
             };
             DateTime eta = CalcPointBEtaFromPointA(destinationLoc, date, currentLoc);
             //Distance:	1.614 km =1614 m
             float actualdist = 0;
             //20 mph = 8.9mps
             //double seconds = actualdist / 8.9;
             //Dont match down in the noise, but are good through seconds.
             Assert.AreEqual(12, eta.Hour);
             Assert.AreEqual(33, eta.Minute);
             Assert.AreEqual(0, eta.Second);
         }
 }
コード例 #29
0
        public void MonitorTConnect_UpdateExistingTConnect_AutoAccept_Passes()
        {
            using (IDbContext idtoFakeContext = new IDTOFakeContext())
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    List <Step> steps;
                    TConnect    mt;
                    Trip        trip;
                    SetupUowWithTripAndTConnect(unitOfWork, out trip, out steps, out mt);
                    DateTime newEta = ((DateTime)mt.StartWindow).AddMinutes(5);

                    //Add a TconnectRequest so the path follows the update path
                    TConnectRequest newRequest = new TConnectRequest();
                    newRequest.TConnectedVehicleId  = 2;
                    newRequest.TConnectId           = mt.Id;
                    newRequest.EstimatedTimeArrival = newEta;
                    newRequest.RequestedHoldMinutes = 2;
                    newRequest.TConnectStatusId     = (int)TConnectStatuses.New;
                    unitOfWork.Repository <TConnectRequest>().Insert(newRequest);
                    unitOfWork.Save();

                    //Add another tconnectrequest for another traveler for the same vehicle
                    TConnectedVehicle v = new TConnectedVehicle();
                    v.Id = 2;
                    v.CurrentAcceptedHoldMinutes = 7;
                    unitOfWork.Repository <TConnectedVehicle>().Insert(v);
                    unitOfWork.Save();

                    MonitorTConnect(unitOfWork, mt, newEta);

                    var             treq    = unitOfWork.Repository <TConnectRequest>().Query().Get();
                    TConnectRequest request = treq.Where(t => t.TConnectId.Equals(mt.Id)).First();
                    Assert.AreEqual(5, request.RequestedHoldMinutes, "Existing TConnectRequest should have been upated to 3 minutes");
                    Assert.AreEqual((int)TConnectStatuses.Accepted, request.TConnectStatusId, "Status should be Accepted");
                }
        }
コード例 #30
0
 public void CalcPointBEtaFromPointA_Passes()
 {
     using (IDbContext idtoFakeContext = new IDTOFakeContext())
         using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
         {
             DateTime      date       = new DateTime(2014, 1, 1, 12, 0, 0);
             GeoCoordinate currentLoc = new GeoCoordinate {
                 Latitude = 39.975148, Longitude = -82.894379
             };
             GeoCoordinate destinationLoc = new GeoCoordinate {
                 Latitude = 39.977592, Longitude = -82.913055
             };
             DateTime eta = CalcPointBEtaFromPointA(destinationLoc, date, currentLoc);
             //Distance:	1.614 km =1614 m
             float actualdist = 1615.81F;
             //20 mph = 8.9mps
             //15 Miles per Hour = 6.7056 Meters per Second
             double seconds = 239; //actualdist / 6.7;
             //Dont match down in the noise, but are good through seconds.
             Assert.AreEqual(date.AddSeconds(seconds).Hour, eta.Hour);
             Assert.AreEqual(date.AddSeconds(seconds).Minute, eta.Minute);
             Assert.AreEqual(date.AddSeconds(seconds).Second, eta.Second);
         }
 }