/// <summary>
 /// Initializes a new instance of the <see cref="DeliveryRouteBusinessService" /> class and other classes.
 /// </summary>
 /// <param name="deliveryRouteDataService">IDeliveryRouteRepository reference</param>
 /// <param name="scenarioDataService">IScenarioRepository reference</param>
 /// <param name="referenceDataBusinessService">The reference data business service.</param>
 public DeliveryRouteBusinessService(IDeliveryRouteDataService deliveryRouteDataService, IDeliveryRouteIntegrationService deliveryRouteIntegrationService, ILoggingHelper loggingHelper, IBlockSequenceDataService blockSequenceDataService, IPostcodeDataService postCodeDataService)
 {
     // Store  injected dependencies
     this.deliveryRouteDataService        = deliveryRouteDataService;
     this.deliveryRouteIntegrationService = deliveryRouteIntegrationService;
     this.loggingHelper            = loggingHelper;
     this.blockSequenceDataService = blockSequenceDataService;
     this.postCodeDataService      = postCodeDataService;
 }
예제 #2
0
        protected void SetUpNew()
        {
            var scenario = new List <Scenario>()
            {
                new Scenario()
                {
                    ScenarioName = "ScanarioName", ID = scenarioId, Unit_GUID = deliveryUnitID
                }
            };
            var referenceData = new List <ReferenceData>()
            {
                new ReferenceData()
                {
                    DisplayText = "shared van", ID = refDataId
                }
            };
            var deliveryrouteblocks = new List <DeliveryRouteBlock>()
            {
                new DeliveryRouteBlock()
                {
                    DeliveryRoute_GUID = deliveryRouteId
                }
            };
            var blocks = new List <Block>()
            {
                new Block()
                {
                    ID = deliveryRouteId
                }
            };
            var blocksequence = new List <BlockSequence>()
            {
                new BlockSequence()
                {
                    Block_GUID = deliveryRouteId, OperationalObject_GUID = Guid.NewGuid()
                }
            };
            var deliverypoint = new List <DeliveryPoint>()
            {
                new DeliveryPoint()
                {
                    ID = Guid.NewGuid()
                }
            };
            var deliverypointalias = new List <DeliveryPointAlias>()
            {
                new DeliveryPointAlias()
                {
                    DeliveryPoint_GUID = Guid.NewGuid()
                }
            };
            var postaladdress = new List <PostalAddress>()
            {
                new PostalAddress()
                {
                    ID = Guid.NewGuid()
                }
            };
            var postcode = new List <Postcode>()
            {
                new Postcode()
                {
                    ID = Guid.NewGuid()
                }
            };

            loggingHelperMock = CreateMock <ILoggingHelper>();

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            var deliveryRoute = new List <DeliveryRoute>()
            {
                new DeliveryRoute()
                {
                    ID                          = deliveryRouteId,
                    RouteName                   = "Linkroad",
                    RouteNumber                 = "1",
                    Scenario                    = scenario[0],
                    ReferenceData               = referenceData[0],
                    RouteMethodType_GUID        = refDataId,
                    DeliveryScenario_GUID       = scenarioId,
                    TravelInTimeMin             = 10,
                    TravelOutTimeMin            = 15,
                    TravelInTransportType_GUID  = Guid.NewGuid(),
                    TravelOutTransportType_GUID = Guid.NewGuid()
                }
            };

            var mockAsynEnumerable1    = new DbAsyncEnumerable <DeliveryRoute>(deliveryRoute);
            var mockDeliveryRouteDBSet = MockDbSet(deliveryRoute);

            mockReferenceDataCategoryDataService = CreateMock <IReferenceDataCategoryDataService>();

            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable1.AsQueryable().Provider);
            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable1.AsQueryable().Expression);
            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable1.AsQueryable().ElementType);
            mockDeliveryRouteDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryRoute>)mockAsynEnumerable1).GetAsyncEnumerator());
            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <DeliveryRoute>()).Returns(mockDeliveryRouteDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryRoutes).Returns(mockDeliveryRouteDBSet.Object);
            mockRMDBContext.Setup(c => c.DeliveryRoutes.AsNoTracking()).Returns(mockDeliveryRouteDBSet.Object);

            var mockAsynEnumerable2    = new DbAsyncEnumerable <ReferenceData>(referenceData);
            var mockReferenceDataDBSet = MockDbSet(referenceData);

            mockReferenceDataDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable2.AsQueryable().Provider);
            mockReferenceDataDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable2.AsQueryable().Expression);
            mockReferenceDataDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable2.AsQueryable().ElementType);
            mockReferenceDataDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <ReferenceData>)mockAsynEnumerable2).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <ReferenceData>()).Returns(mockReferenceDataDBSet.Object);
            mockRMDBContext.Setup(x => x.ReferenceDatas).Returns(mockReferenceDataDBSet.Object);

            var mockAsynEnumerable3 = new DbAsyncEnumerable <Scenario>(scenario);
            var mockScenarioDBSet   = MockDbSet(scenario);

            mockScenarioDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider);
            mockScenarioDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression);
            mockScenarioDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType);
            mockScenarioDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Scenario>)mockAsynEnumerable3).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <Scenario>()).Returns(mockScenarioDBSet.Object);
            mockRMDBContext.Setup(x => x.Scenarios).Returns(mockScenarioDBSet.Object);
            mockRMDBContext.Setup(c => c.Scenarios.AsNoTracking()).Returns(mockScenarioDBSet.Object);

            var mockAsynEnumerable4         = new DbAsyncEnumerable <DeliveryRouteBlock>(deliveryrouteblocks);
            var mockDeliveryRouteBlockDBSet = MockDbSet(deliveryrouteblocks);

            mockDeliveryRouteBlockDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable4.AsQueryable().Provider);
            mockDeliveryRouteBlockDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable4.AsQueryable().Expression);
            mockDeliveryRouteBlockDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable4.AsQueryable().ElementType);
            mockDeliveryRouteBlockDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryRouteBlock>)mockAsynEnumerable4).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <DeliveryRouteBlock>()).Returns(mockDeliveryRouteBlockDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryRouteBlocks).Returns(mockDeliveryRouteBlockDBSet.Object);
            mockRMDBContext.Setup(c => c.DeliveryRouteBlocks.AsNoTracking()).Returns(mockDeliveryRouteBlockDBSet.Object);

            var mockAsynEnumerable5 = new DbAsyncEnumerable <Block>(blocks);
            var mockBlockDBSet      = MockDbSet(blocks);

            mockBlockDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable5.AsQueryable().Provider);
            mockBlockDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable5.AsQueryable().Expression);
            mockBlockDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable5.AsQueryable().ElementType);
            mockBlockDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Block>)mockAsynEnumerable5).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <Block>()).Returns(mockBlockDBSet.Object);
            mockRMDBContext.Setup(x => x.Blocks).Returns(mockBlockDBSet.Object);
            mockRMDBContext.Setup(c => c.Blocks.AsNoTracking()).Returns(mockBlockDBSet.Object);

            var mockAsynEnumerable6    = new DbAsyncEnumerable <BlockSequence>(blocksequence);
            var mockBlockSequenceDBSet = MockDbSet(blocksequence);

            mockBlockSequenceDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable6.AsQueryable().Provider);
            mockBlockSequenceDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable6.AsQueryable().Expression);
            mockBlockSequenceDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable6.AsQueryable().ElementType);
            mockBlockSequenceDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <BlockSequence>)mockAsynEnumerable6).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <BlockSequence>()).Returns(mockBlockSequenceDBSet.Object);
            mockRMDBContext.Setup(x => x.BlockSequences).Returns(mockBlockSequenceDBSet.Object);
            mockRMDBContext.Setup(c => c.BlockSequences.AsNoTracking()).Returns(mockBlockSequenceDBSet.Object);

            var mockAsynEnumerable7    = new DbAsyncEnumerable <DeliveryPoint>(deliverypoint);
            var mockDeliveryPointDBSet = MockDbSet(deliverypoint);

            mockDeliveryPointDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable7.AsQueryable().Provider);
            mockDeliveryPointDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable7.AsQueryable().Expression);
            mockDeliveryPointDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable7.AsQueryable().ElementType);
            mockDeliveryPointDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryPoint>)mockAsynEnumerable7).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <DeliveryPoint>()).Returns(mockDeliveryPointDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryPoints).Returns(mockDeliveryPointDBSet.Object);
            mockRMDBContext.Setup(c => c.DeliveryPoints.AsNoTracking()).Returns(mockDeliveryPointDBSet.Object);

            var mockAsynEnumerable8         = new DbAsyncEnumerable <DeliveryPointAlias>(deliverypointalias);
            var mockDeliveryPointAliasDBSet = MockDbSet(deliverypointalias);

            mockDeliveryPointAliasDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable8.AsQueryable().Provider);
            mockDeliveryPointAliasDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable8.AsQueryable().Expression);
            mockDeliveryPointAliasDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable8.AsQueryable().ElementType);
            mockDeliveryPointAliasDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryPointAlias>)mockAsynEnumerable8).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <DeliveryPointAlias>()).Returns(mockDeliveryPointAliasDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryPointAlias).Returns(mockDeliveryPointAliasDBSet.Object);
            mockRMDBContext.Setup(c => c.DeliveryPointAlias.AsNoTracking()).Returns(mockDeliveryPointAliasDBSet.Object);

            var mockAsynEnumerable9    = new DbAsyncEnumerable <PostalAddress>(postaladdress);
            var mockPostalAddressDBSet = MockDbSet(postaladdress);

            mockPostalAddressDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable9.AsQueryable().Provider);
            mockPostalAddressDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable9.AsQueryable().Expression);
            mockPostalAddressDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable9.AsQueryable().ElementType);
            mockPostalAddressDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <PostalAddress>)mockAsynEnumerable9).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <PostalAddress>()).Returns(mockPostalAddressDBSet.Object);
            mockRMDBContext.Setup(x => x.PostalAddresses).Returns(mockPostalAddressDBSet.Object);
            mockRMDBContext.Setup(c => c.PostalAddresses.AsNoTracking()).Returns(mockPostalAddressDBSet.Object);

            var mockAsynEnumerable10 = new DbAsyncEnumerable <Postcode>(postcode);
            var mockPostcodeDBSet    = MockDbSet(postcode);

            mockPostcodeDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable10.AsQueryable().Provider);
            mockPostcodeDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable10.AsQueryable().Expression);
            mockPostcodeDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable10.AsQueryable().ElementType);
            mockPostcodeDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Postcode>)mockAsynEnumerable10).GetAsyncEnumerator());
            mockRMDBContext.Setup(x => x.Set <Postcode>()).Returns(mockPostcodeDBSet.Object);
            mockRMDBContext.Setup(x => x.Postcodes).Returns(mockPostcodeDBSet.Object);
            mockRMDBContext.Setup(c => c.Postcodes.AsNoTracking()).Returns(mockPostcodeDBSet.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);
            testCandidate = new DeliveryRouteDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
예제 #3
0
        protected override void OnSetup()
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

            var deliveryRoute = new List <DeliveryRoute>()
            {
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch1jbcjkdsghfjks", RouteNumber = "testsearch1jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch2jbcjkdsghfjks", RouteNumber = "testsearch2jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch3jbcjkdsghfjks", RouteNumber = "testsearch3jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch4jbcjkdsghfjks", RouteNumber = "testsearch4jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch5jbcjkdsghfjks", RouteNumber = "testsearch5jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch6jbcjkdsghfjks", RouteNumber = "testsearch6jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                },
                new DeliveryRoute()
                {
                    ID = Guid.NewGuid(), OperationalStatus_GUID = Guid.NewGuid(), DeliveryScenario_GUID = Guid.NewGuid(), RouteName = "testsearch7jbcjkdsghfjks", RouteNumber = "testsearch7jbcjkdsghfjks", Scenario = new Scenario()
                    {
                        Unit_GUID = new Guid("7654810D-3EBF-420A-91FD-DABE05945A44")
                    }
                }
            };

            var mockAsynEnumerable = new DbAsyncEnumerable <DeliveryRoute>(deliveryRoute);

            loggingHelperMock = CreateMock <ILoggingHelper>();

            var mockDeliveryRouteDBSet = MockDbSet(deliveryRoute);

            mockReferenceDataCategoryDataService = CreateMock <IReferenceDataCategoryDataService>();
            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable.AsQueryable().Provider);
            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable.AsQueryable().Expression);
            mockDeliveryRouteDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable.AsQueryable().ElementType);
            mockDeliveryRouteDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryRoute>)mockAsynEnumerable).GetAsyncEnumerator());

            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <DeliveryRoute>()).Returns(mockDeliveryRouteDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryRoutes).Returns(mockDeliveryRouteDBSet.Object);

            mockRMDBContext.Setup(c => c.DeliveryRoutes.AsNoTracking()).Returns(mockDeliveryRouteDBSet.Object);

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);
            testCandidate = new DeliveryRouteDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
예제 #4
0
        protected void SetUp()
        {
            var scenario = new List <Scenario>()
            {
                new Scenario()
                {
                    ScenarioName = "ScanarioName", ID = scenarioId, Unit_GUID = deliveryUnitID
                }
            };
            var referenceData = new List <ReferenceData>()
            {
                new ReferenceData()
                {
                    DisplayText = "shared van", ID = refDataId
                }
            };
            var deliveryRoute = new List <DeliveryRoute>()
            {
                new DeliveryRoute()
                {
                    ID                    = deliveryRouteId,
                    RouteName             = "Linkroad",
                    RouteNumber           = "1",
                    Scenario              = scenario[0],
                    ReferenceData         = referenceData[0],
                    RouteMethodType_GUID  = refDataId,
                    DeliveryScenario_GUID = scenarioId
                }
            };

            loggingHelperMock = CreateMock <ILoggingHelper>();

            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            loggingHelperMock.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);

            var mockDeliveryRouteDBSet = MockDbSet(deliveryRoute);

            mockReferenceDataCategoryDataService = CreateMock <IReferenceDataCategoryDataService>();
            mockRMDBContext = CreateMock <RMDBContext>();
            mockRMDBContext.Setup(x => x.Set <DeliveryRoute>()).Returns(mockDeliveryRouteDBSet.Object);
            mockRMDBContext.Setup(x => x.DeliveryRoutes).Returns(mockDeliveryRouteDBSet.Object);
            mockRMDBContext.Setup(c => c.DeliveryRoutes.AsNoTracking()).Returns(mockDeliveryRouteDBSet.Object);

            var mockReferenceDataDBSet = MockDbSet(referenceData);

            mockRMDBContext.Setup(x => x.Set <ReferenceData>()).Returns(mockReferenceDataDBSet.Object);
            mockRMDBContext.Setup(x => x.ReferenceDatas).Returns(mockReferenceDataDBSet.Object);
            mockRMDBContext.Setup(c => c.ReferenceDatas.AsNoTracking()).Returns(mockReferenceDataDBSet.Object);

            var mockScenarioDBSet = MockDbSet(scenario);

            mockRMDBContext.Setup(x => x.Set <Scenario>()).Returns(mockScenarioDBSet.Object);
            mockRMDBContext.Setup(x => x.Scenarios).Returns(mockScenarioDBSet.Object);
            mockRMDBContext.Setup(c => c.Scenarios.AsNoTracking()).Returns(mockScenarioDBSet.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.Object);
            testCandidate = new DeliveryRouteDataService(mockDatabaseFactory.Object, loggingHelperMock.Object);
        }
        protected override void OnSetup()
        {
            var scenarios = new List <Scenario>()
            {
                new Scenario()
                {
                    ID = new Guid("ED148EE4-46A7-4EA5-B0C9-1654085159D0"), ScenarioName = "High Wycome Collection Office - Baseline week", LocationID = new Guid("F08AAD61-B83F-463D-95D6-F0583F24644F")
                }
            };
            var scenarioRoutes = new List <ScenarioRoute>()
            {
                new ScenarioRoute()
                {
                    ScenarioID = new Guid("ED148EE4-46A7-4EA5-B0C9-1654085159D0"), RouteID = new Guid("F87F67EC-FAFA-4156-9C3D-85722719CE12")
                }
            };
            var routes = new List <Route>()
            {
                new Route()
                {
                    ID = new Guid("F87F67EC-FAFA-4156-9C3D-85722719CE12"), SpanTimeMinute = 120, RouteName = "1415 BROADWATER ST EAST", RouteNumber = "415", UnSequencedBlockID = new Guid("61154482-8493-4130-A5E1-64E86C9757BC"), RouteMethodTypeGUID = new Guid("E1D25B7F-561B-E711-9F8C-28D244AEF9ED")
                }
            };
            var routeActivites = new List <RouteActivity>()
            {
                new RouteActivity()
                {
                    ID = new Guid("F21BD083-9FB5-4420-86EF-7205A5075870"), RouteID = new Guid("F87F67EC-FAFA-4156-9C3D-85722719CE12"), ActivityTypeGUID = new Guid("7803247C-F866-E711-80ED-000D3A22173B"), ResourceGUID = new Guid("E1D25B7F-561B-E711-9F8C-28D244AEF9ED"), LocationID = new Guid("F08AAD61-B83F-463D-95D6-F0583F24644F")
                }
            };
            var blockSequences = new List <BlockSequence>()
            {
                new BlockSequence()
                {
                    ID = new Guid("4FEB3A4A-A25E-42AF-AAD9-6B0BD51C9A1D"), BlockID = new Guid("61154482-8493-4130-A5E1-64E86C9757BC"), LocationID = new Guid("F08AAD61-B83F-463D-95D6-F0583F24644F")
                }
            };
            var postcodes = new List <Postcode>()
            {
                new Postcode()
                {
                    ID = new Guid("E436B42D-A2C1-4E15-9E84-EB48A4474608"), PrimaryRouteGUID = new Guid("02B18F5E-1C1A-410F-AA51-C7CA0EC7216C"), PostcodeUnit = "EC4P 4GY"
                }
            };
            var deliveryPoints = new List <DeliveryPoint>()
            {
                new DeliveryPoint()
                {
                    ID            = new Guid("F08AAD61-B83F-463D-95D6-F0583F24644F"), DeliveryPointUseIndicatorGUID = new Guid("178EDCAD-9431-E711-83EC-28D244AEF9ED"), MultipleOccupancyCount = 10, PostalAddressID = new Guid("7A5BF574-9ACA-4B8E-809D-00062A033342"),
                    PostalAddress = new PostalAddress()
                    {
                        ID = new Guid("7A5BF574-9ACA-4B8E-809D-00062A033342"), Thoroughfare = "Steyne Gardens", BuildingNumber = 10, SubBuildingName = "Apartment 33", BuildingName = "Warnes", Postcode = "EC4P 4GY"
                    }
                }
            };
            var postalAddresses = new List <PostalAddress>()
            {
                new PostalAddress()
                {
                    ID = new Guid("7A5BF574-9ACA-4B8E-809D-00062A033342"), Thoroughfare = "Steyne Gardens", BuildingNumber = 10, SubBuildingName = "Apartment 33", BuildingName = "Warnes", Postcode = "EC4P 4GY"
                }
            };

            mockRouteDBContext = CreateMock <RouteDBContext>();

            mockLoggingHelper = CreateMock <ILoggingHelper>();
            mockConfigHelper  = CreateMock <IConfigurationHelper>();
            var rmTraceManagerMock = new Mock <IRMTraceManager>();

            rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>()));
            mockLoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object);
            mockConfigHelper.Setup(x => x.ReadAppSettingsConfigurationValues(It.IsAny <string>())).Returns("5");

            var mockAsyncScenarios = new DbAsyncEnumerable <Scenario>(scenarios);
            var mockScenariosDBSet = MockDbSet(scenarios);

            mockScenariosDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsyncScenarios.AsQueryable().Provider);
            mockScenariosDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsyncScenarios.AsQueryable().Expression);
            mockScenariosDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsyncScenarios.AsQueryable().ElementType);
            mockScenariosDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Scenario>)mockAsyncScenarios).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <Scenario>()).Returns(mockScenariosDBSet.Object);
            mockRouteDBContext.Setup(x => x.Scenarios).Returns(mockScenariosDBSet.Object);
            mockRouteDBContext.Setup(c => c.Scenarios.AsNoTracking()).Returns(mockScenariosDBSet.Object);

            var mockAsynScenarioRoutes  = new DbAsyncEnumerable <ScenarioRoute>(scenarioRoutes);
            var mockScenarioRoutesDBSet = MockDbSet(scenarioRoutes);

            mockScenarioRoutesDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynScenarioRoutes.AsQueryable().Provider);
            mockScenarioRoutesDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynScenarioRoutes.AsQueryable().Expression);
            mockScenarioRoutesDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynScenarioRoutes.AsQueryable().ElementType);
            mockScenarioRoutesDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <ScenarioRoute>)mockAsynScenarioRoutes).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <ScenarioRoute>()).Returns(mockScenarioRoutesDBSet.Object);
            mockRouteDBContext.Setup(x => x.ScenarioRoutes).Returns(mockScenarioRoutesDBSet.Object);
            mockRouteDBContext.Setup(c => c.ScenarioRoutes.AsNoTracking()).Returns(mockScenarioRoutesDBSet.Object);

            var mockAsynRoutes  = new DbAsyncEnumerable <Route>(routes);
            var mockRoutesDBSet = MockDbSet(routes);

            mockRoutesDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynRoutes.AsQueryable().Provider);
            mockRoutesDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynRoutes.AsQueryable().Expression);
            mockRoutesDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynRoutes.AsQueryable().ElementType);
            mockRoutesDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Route>)mockAsynRoutes).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <Route>()).Returns(mockRoutesDBSet.Object);
            mockRouteDBContext.Setup(x => x.Routes).Returns(mockRoutesDBSet.Object);
            mockRouteDBContext.Setup(c => c.Routes.AsNoTracking()).Returns(mockRoutesDBSet.Object);

            var mockAsynRouteActivites  = new DbAsyncEnumerable <RouteActivity>(routeActivites);
            var mockRouteAcitivityDBSet = MockDbSet(routeActivites);

            mockRouteAcitivityDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynRouteActivites.AsQueryable().Provider);
            mockRouteAcitivityDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynRouteActivites.AsQueryable().Expression);
            mockRouteAcitivityDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynRouteActivites.AsQueryable().ElementType);
            mockRouteAcitivityDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <RouteActivity>)mockAsynRouteActivites).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <RouteActivity>()).Returns(mockRouteAcitivityDBSet.Object);
            mockRouteDBContext.Setup(x => x.RouteActivities).Returns(mockRouteAcitivityDBSet.Object);
            mockRouteDBContext.Setup(c => c.RouteActivities.AsNoTracking()).Returns(mockRouteAcitivityDBSet.Object);

            var mockAsynBlockSequences  = new DbAsyncEnumerable <BlockSequence>(blockSequences);
            var mockBlockSequencesDBSet = MockDbSet(blockSequences);

            mockBlockSequencesDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynBlockSequences.AsQueryable().Provider);
            mockBlockSequencesDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynBlockSequences.AsQueryable().Expression);
            mockBlockSequencesDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynBlockSequences.AsQueryable().ElementType);
            mockBlockSequencesDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <BlockSequence>)mockAsynBlockSequences).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <BlockSequence>()).Returns(mockBlockSequencesDBSet.Object);
            mockRouteDBContext.Setup(x => x.BlockSequences).Returns(mockBlockSequencesDBSet.Object);
            mockRouteDBContext.Setup(c => c.BlockSequences.AsNoTracking()).Returns(mockBlockSequencesDBSet.Object);

            var mockAsynPostcodes = new DbAsyncEnumerable <Postcode>(postcodes);
            var mockPoscodesDBSet = MockDbSet(postcodes);

            mockPoscodesDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynPostcodes.AsQueryable().Provider);
            mockPoscodesDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynPostcodes.AsQueryable().Expression);
            mockPoscodesDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynPostcodes.AsQueryable().ElementType);
            mockPoscodesDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Postcode>)mockAsynPostcodes).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <Postcode>()).Returns(mockPoscodesDBSet.Object);
            mockRouteDBContext.Setup(x => x.Postcodes).Returns(mockPoscodesDBSet.Object);
            mockRouteDBContext.Setup(c => c.Postcodes.AsNoTracking()).Returns(mockPoscodesDBSet.Object);

            var mockAsyndeliveryPoints  = new DbAsyncEnumerable <DeliveryPoint>(deliveryPoints);
            var mockdeliveryPointsDBSet = MockDbSet(deliveryPoints);

            mockdeliveryPointsDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsyndeliveryPoints.AsQueryable().Provider);
            mockdeliveryPointsDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsyndeliveryPoints.AsQueryable().Expression);
            mockdeliveryPointsDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsyndeliveryPoints.AsQueryable().ElementType);
            mockdeliveryPointsDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <DeliveryPoint>)mockAsyndeliveryPoints).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <DeliveryPoint>()).Returns(mockdeliveryPointsDBSet.Object);
            mockRouteDBContext.Setup(x => x.DeliveryPoints).Returns(mockdeliveryPointsDBSet.Object);
            mockdeliveryPointsDBSet.Setup(x => x.Include(It.IsAny <string>())).Returns(mockdeliveryPointsDBSet.Object);
            mockdeliveryPointsDBSet.Setup(c => c.AsNoTracking()).Returns(mockdeliveryPointsDBSet.Object);

            var mockAsyncPostalAddresses = new DbAsyncEnumerable <PostalAddress>(postalAddresses);
            var mockPostalAddressesDBSet = MockDbSet(postalAddresses);

            mockPostalAddressesDBSet.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsyncPostalAddresses.AsQueryable().Provider);
            mockPostalAddressesDBSet.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsyncPostalAddresses.AsQueryable().Expression);
            mockPostalAddressesDBSet.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsyncPostalAddresses.AsQueryable().ElementType);
            mockPostalAddressesDBSet.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <PostalAddress>)mockAsyncPostalAddresses).GetAsyncEnumerator());
            mockRouteDBContext.Setup(x => x.Set <PostalAddress>()).Returns(mockPostalAddressesDBSet.Object);
            mockRouteDBContext.Setup(x => x.PostalAddresses).Returns(mockPostalAddressesDBSet.Object);
            mockRouteDBContext.Setup(c => c.PostalAddresses.AsNoTracking()).Returns(mockPostalAddressesDBSet.Object);

            mockDatabaseFactory = CreateMock <IDatabaseFactory <RouteDBContext> >();
            mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRouteDBContext.Object);

            testCandidate = new DeliveryRouteDataService(mockDatabaseFactory.Object, mockLoggingHelper.Object, mockConfigHelper.Object);
        }