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);
                }
        }
        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);
                }
        }
        public void testwithrealrepo_Passes()
        {
            //need to use Include, lazy loading is off
            using (IDbContext idtoFakeContext = new IDTOContext(@"Server=tcp:sfkee7y99k.database.windows.net,1433;Database=IDTO_Test;User ID=vital_admin@sfkee7y99k;Password=Super$0813^Monkey;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"))
                using (IUnitOfWork unitOfWork = new UnitOfWork(idtoFakeContext))
                {
                    int firstrandomid = unitOfWork.Repository <TConnect>().Query().Get().Select(i => i.Id).First();
                    var t             = unitOfWork.Repository <TConnect>().Query().Include(i => i.InboundStep.Trip.Traveler).Get()
                                        .Where(code => code.Id.Equals(firstrandomid)).First();
                    //vehiclenname line will fail if the below command is used instead.
                    //var t = unitOfWork.Repository<TConnect>().Query().Get()
                    //                .Where(code => code.Id.Equals(firstrandomid)).First();
                    string vehicleName = t.InboundStep.Trip.Traveler.LastName;

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