/// <summary> /// Initializes a new instance of the Network Manager Business Service class. /// </summary> /// <param name="streetNetworkDataService">The street network data service</param> /// <param name="networkManagerIntegrationService">The street network data service</param> /// <param name="osRoadLinkDataService">The Ordnance Survey road link data service</param> /// <param name="roadNameDataService">The road name data service</param> /// <param name="loggingHelper">The helper class object for logging</param> public NetworkManagerBusinessService(IStreetNetworkDataService streetNetworkDataService, INetworkManagerIntegrationService networkManagerIntegrationService, IOSRoadLinkDataService osRoadLinkDataService, IRoadNameDataService roadNameDataService, ILoggingHelper loggingHelper) { this.streetNetworkDataService = streetNetworkDataService; this.networkManagerIntegrationService = networkManagerIntegrationService; this.osRoadLinkDataService = osRoadLinkDataService; this.roadNameDataService = roadNameDataService; this.loggingHelper = loggingHelper; }
protected override void OnSetup() { SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); loggingHelperMock = CreateMock <ILoggingHelper>(); unit1Guid = Guid.NewGuid(); unit2Guid = Guid.NewGuid(); unit3Guid = Guid.NewGuid(); user1Id = System.Guid.NewGuid(); user2Id = System.Guid.NewGuid(); var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700); accessLinkLine = DbGeometry.LineFromText("LINESTRING (488938 197021, 488929.9088937093 197036.37310195228)", 27700); var streetNames = new List <StreetName>() { new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad1", DesignatedName = "XYZ1", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad2", DesignatedName = "XYZ2", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad3", DesignatedName = "XYZ3", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad4", DesignatedName = "XYZ4", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad5", DesignatedName = "XYZ5", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad6", DesignatedName = "XYZ6", Geometry = unitBoundary }, new StreetName() { ID = Guid.NewGuid(), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad7", DesignatedName = "XYZ7", Geometry = unitBoundary } }; var unitLocation = new List <UnitLocation>() { new UnitLocation() { UnitName = "unit1", ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> { new UserRoleUnit { Unit_GUID = unit1Guid, User_GUID = user1Id } } }, new UnitLocation() { UnitName = "unit2", ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> { new UserRoleUnit { Unit_GUID = unit2Guid, User_GUID = user1Id } } }, new UnitLocation() { UnitName = "unit3", ExternalId = "extunit2", ID = unit3Guid, UnitBoundryPolygon = unitBoundary, UserRoleUnits = new List <UserRoleUnit> { new UserRoleUnit { Unit_GUID = unit3Guid, User_GUID = user2Id } } } }; var networkLink = new List <NetworkLink>() { new NetworkLink() { LinkGeometry = accessLinkLine } }; var mockAsynEnumerable = new DbAsyncEnumerable <StreetName>(streetNames); var mockStreetNetworkDataService = MockDbSet(streetNames); mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable.AsQueryable().Provider); mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable.AsQueryable().Expression); mockStreetNetworkDataService.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable.AsQueryable().ElementType); mockStreetNetworkDataService.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <StreetName>)mockAsynEnumerable).GetAsyncEnumerator()); mockRMDBContext = CreateMock <RMDBContext>(); mockRMDBContext.Setup(x => x.Set <StreetName>()).Returns(mockStreetNetworkDataService.Object); mockRMDBContext.Setup(x => x.StreetNames).Returns(mockStreetNetworkDataService.Object); var mockAsynEnumerable2 = new DbAsyncEnumerable <UnitLocation>(unitLocation); var mockStreetNetworkDataService2 = MockDbSet(unitLocation); mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable2.AsQueryable().Provider); mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable2.AsQueryable().Expression); mockStreetNetworkDataService2.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable2.AsQueryable().ElementType); mockStreetNetworkDataService2.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <UnitLocation>)mockAsynEnumerable2).GetAsyncEnumerator()); mockRMDBContext.Setup(x => x.Set <UnitLocation>()).Returns(mockStreetNetworkDataService2.Object); mockRMDBContext.Setup(x => x.UnitLocations).Returns(mockStreetNetworkDataService2.Object); var mockAsynEnumerable3 = new DbAsyncEnumerable <NetworkLink>(networkLink); var mockNetworkLink = MockDbSet(networkLink); mockNetworkLink.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider); mockNetworkLink.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression); mockNetworkLink.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType); mockNetworkLink.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <NetworkLink>)mockAsynEnumerable3).GetAsyncEnumerator()); mockRMDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object); mockRMDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object); mockRMDBContext.Setup(x => x.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object); mockDatabaseFactory = CreateMock <IDatabaseFactory <RMDBContext> >(); mockDatabaseFactory.Setup(x => x.Get()).Returns(mockRMDBContext.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); testCandidate = new StreetNetworkDataService(mockDatabaseFactory.Object, loggingHelperMock.Object); }
/// <summary> /// Data and Methods setup required to run test methods /// </summary> protected override void OnSetup() { // Data setup unit1Guid = new Guid("8534AA41-391F-4579-A18D-D7EDF5B5F918"); currentUserUnitType = "Delivery Office"; mockIConfigurationHelper = CreateMock <IConfigurationHelper>(); SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); var unitBoundary = DbGeometry.PolygonFromText("POLYGON ((505058.162109375 100281.69677734375, 518986.84887695312 100281.69677734375, 518986.84887695312 114158.546875, 505058.162109375 114158.546875, 505058.162109375 100281.69677734375))", 27700); accessLinkLine = DbGeometry.LineFromText("LINESTRING (488938 197021, 488929.9088937093 197036.37310195228)", 27700); point = DbGeometry.PointFromText("POINT (488938 197021)", 27700); var streetNamesList = new List <StreetName>() { new StreetName() { ID = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad1", DesignatedName = "XYZ1", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8234AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad2", DesignatedName = "XYZ2", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8334AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad3", DesignatedName = "XYZ3", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8434AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad4", DesignatedName = "XYZ4", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8534AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad5", DesignatedName = "XYZ5", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8634AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad6", DesignatedName = "XYZ6", Geometry = unitBoundary }, new StreetName() { ID = new Guid("8734AA41-391F-4579-A18D-D7EDF5B5F918"), StreetType = "t1", Descriptor = "d1", NationalRoadCode = "Testroad7", DesignatedName = "XYZ7", Geometry = unitBoundary } }; var networkLinkList = new List <NetworkLink>() { new NetworkLink() { LinkGeometry = accessLinkLine, StreetNameGUID = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F918"), NetworkLinkTypeGUID = Guid.Empty, ID = new Guid("8134AA41-391F-4579-A18D-D7EDF5B5F911") } }; List <Location> locationList = new List <Location>() { new Location() { ID = unit1Guid, Shape = unitBoundary } }; referenceDataCategoryList = new List <ReferenceDataCategoryDTO>() { new ReferenceDataCategoryDTO() { CategoryName = ReferenceDataCategoryNames.NetworkLinkType, ReferenceDatas = new List <ReferenceDataDTO>() { new ReferenceDataDTO() { ReferenceDataValue = ReferenceDataValues.NetworkLinkPathLink } }, Id = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918") }, new ReferenceDataCategoryDTO() { CategoryName = ReferenceDataCategoryNames.NetworkLinkType, ReferenceDatas = new List <ReferenceDataDTO>() { new ReferenceDataDTO() { ReferenceDataValue = ReferenceDataValues.NetworkLinkRoadLink } }, Id = new Guid("2534AA41-391F-4579-A18D-D7EDF5B5F918") }, new ReferenceDataCategoryDTO() { CategoryName = ReferenceDataCategoryNames.AccessLinkParameters, ReferenceDatas = new List <ReferenceDataDTO>() { new ReferenceDataDTO() { ReferenceDataName = ReferenceDataValues.AccessLinkDiffRoadMaxDistance, ReferenceDataValue = "5" } }, Id = new Guid("3534AA41-391F-4579-A18D-D7EDF5B5F918") } }; mockNetworkDBContext = CreateMock <NetworkDBContext>(); mockILoggingHelper = CreateMock <ILoggingHelper>(); // Setup for StreetName var mockAsynEnumerable = new DbAsyncEnumerable <StreetName>(streetNamesList); var mockStreetName = MockDbSet(streetNamesList); mockStreetName.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable.AsQueryable().Provider); mockStreetName.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable.AsQueryable().Expression); mockStreetName.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable.AsQueryable().ElementType); mockStreetName.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <StreetName>)mockAsynEnumerable).GetAsyncEnumerator()); mockNetworkDBContext.Setup(x => x.Set <StreetName>()).Returns(mockStreetName.Object); mockNetworkDBContext.Setup(x => x.StreetNames).Returns(mockStreetName.Object); mockStreetName.Setup(x => x.AsNoTracking()).Returns(mockStreetName.Object); // Setup for Location var mockAsynEnumerable1 = new DbAsyncEnumerable <Location>(locationList); var mockLocation = MockDbSet(locationList); mockLocation.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable1.AsQueryable().Provider); mockLocation.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable1.AsQueryable().Expression); mockLocation.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable1.AsQueryable().ElementType); mockLocation.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Location>)mockAsynEnumerable1).GetAsyncEnumerator()); mockNetworkDBContext.Setup(x => x.Set <Location>()).Returns(mockLocation.Object); mockNetworkDBContext.Setup(x => x.Locations).Returns(mockLocation.Object); mockLocation.Setup(x => x.AsNoTracking()).Returns(mockLocation.Object); // Setup for NetworkLink var mockAsynEnumerable3 = new DbAsyncEnumerable <NetworkLink>(networkLinkList); var mockNetworkLink = MockDbSet(networkLinkList); mockNetworkLink.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider); mockNetworkLink.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression); mockNetworkLink.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType); mockNetworkLink.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <NetworkLink>)mockAsynEnumerable3).GetAsyncEnumerator()); mockNetworkDBContext.Setup(x => x.Set <NetworkLink>()).Returns(mockNetworkLink.Object); mockNetworkDBContext.Setup(x => x.NetworkLinks).Returns(mockNetworkLink.Object); mockNetworkDBContext.Setup(x => x.NetworkLinks.AsNoTracking()).Returns(mockNetworkLink.Object); // Mock trace manager var rmTraceManagerMock = new Mock <IRMTraceManager>(); rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>())); mockILoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object); mockIConfigurationHelper.Setup(x => x.ReadAppSettingsConfigurationValues(It.IsAny <string>())).Returns("5"); mockDatabaseFactory = CreateMock <IDatabaseFactory <NetworkDBContext> >(); mockDatabaseFactory.Setup(x => x.Get()).Returns(mockNetworkDBContext.Object); testCandidate = new StreetNetworkDataService(mockDatabaseFactory.Object, mockILoggingHelper.Object, mockIConfigurationHelper.Object); }