/// <summary> /// Initializes a new instance of the <see cref="UnitLocationBusinessService"/> class. /// </summary> /// <param name="unitLocationDataService"> The unit location respository</param> /// <param name="postcodeSectorDataService">post code sector data service</param> /// <param name="postCodeDataService">post code data service</param> /// <param name="scenarioDataService">scenario data service</param> public UnitLocationBusinessService(IUnitLocationDataService unitLocationDataService, IPostcodeSectorDataService postcodeSectorDataService, IPostcodeDataService postCodeDataService, IScenarioDataService scenarioDataService, IPostalAddressDataService postalAddressDataService, ILoggingHelper loggingHelper, IUnitManagerIntegrationService unitManagerIntegrationService) { // Store injected dependencies this.unitLocationDataService = unitLocationDataService; this.postcodeSectorDataService = postcodeSectorDataService; this.postCodeDataService = postCodeDataService; this.scenarioDataService = scenarioDataService; this.loggingHelper = loggingHelper; this.unitManagerIntegrationService = unitManagerIntegrationService; this.postalAddressDataService = postalAddressDataService; }
protected override void OnSetup() { SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); loggingHelperMock = CreateMock <ILoggingHelper>(); unit1Guid = Guid.NewGuid(); unit2Guid = Guid.NewGuid(); unit3Guid = Guid.NewGuid(); user1Id = Guid.NewGuid(); user2Id = Guid.NewGuid(); sectorGuid = Guid.NewGuid(); districtGuid = Guid.NewGuid(); areaGuid = Guid.NewGuid(); postcodeGuid2 = Guid.NewGuid(); postcodeGuid1 = 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); var userRoleUnits = new List <UserRoleUnit>() { new UserRoleUnit { Unit_GUID = unit1Guid, User_GUID = user1Id }, new UserRoleUnit { Unit_GUID = unit2Guid, User_GUID = user1Id }, new UserRoleUnit { Unit_GUID = unit3Guid, User_GUID = user2Id } }; var unitLocation = new List <UnitLocation>() { new UnitLocation() { UnitName = "unit1", UnitAddressUDPRN = 1, ExternalId = "extunit1", ID = unit1Guid, UnitBoundryPolygon = unitBoundary }, new UnitLocation() { UnitName = "unit2", UnitAddressUDPRN = 2, ExternalId = "extunit2", ID = unit2Guid, UnitBoundryPolygon = unitBoundary }, new UnitLocation() { UnitName = "unit3", UnitAddressUDPRN = 3, ExternalId = "extunit3", ID = unit3Guid, UnitBoundryPolygon = unitBoundary } }; var mockDeliveryUnitLocationDbSet = MockDbSet(unitLocation); mockRMDBContext = CreateMock <RMDBContext>(); mockRMDBContext.Setup(x => x.Set <UnitLocation>()).Returns(mockDeliveryUnitLocationDbSet.Object); mockRMDBContext.Setup(x => x.UnitLocations).Returns(mockDeliveryUnitLocationDbSet.Object); mockRMDBContext.Setup(x => x.UnitLocations.AsNoTracking()).Returns(mockDeliveryUnitLocationDbSet.Object); mockDeliveryUnitLocationDbSet.Setup(x => x.Include(It.IsAny <string>())).Returns(mockDeliveryUnitLocationDbSet.Object); var postalAddresses = new List <PostalAddress>() { new PostalAddress() { UDPRN = 1, PostCodeGUID = postcodeGuid1 }, new PostalAddress() { UDPRN = 2, PostCodeGUID = postcodeGuid2 }, new PostalAddress() { UDPRN = 3, PostCodeGUID = postcodeGuid2 } }; var mockPostalAddressesDbSet = MockDbSet(postalAddresses); mockRMDBContext.Setup(x => x.Set <PostalAddress>()).Returns(mockPostalAddressesDbSet.Object); mockRMDBContext.Setup(x => x.PostalAddresses).Returns(mockPostalAddressesDbSet.Object); mockRMDBContext.Setup(x => x.PostalAddresses.AsNoTracking()).Returns(mockPostalAddressesDbSet.Object); var postcodes = new List <Postcode>() { new Postcode() { ID = postcodeGuid1, SectorGUID = sectorGuid }, new Postcode() { ID = postcodeGuid2, SectorGUID = sectorGuid } }; var mockPostCodesDbSet = MockDbSet(postcodes); mockRMDBContext.Setup(x => x.Set <Postcode>()).Returns(mockPostCodesDbSet.Object); mockRMDBContext.Setup(x => x.Postcodes).Returns(mockPostCodesDbSet.Object); mockRMDBContext.Setup(x => x.Postcodes.AsNoTracking()).Returns(mockPostCodesDbSet.Object); var postcodeSectors = new List <PostcodeSector>() { new PostcodeSector() { ID = sectorGuid, DistrictGUID = districtGuid } }; var mockPostcodeSectorDbSet = MockDbSet(postcodeSectors); mockRMDBContext.Setup(x => x.Set <PostcodeSector>()).Returns(mockPostcodeSectorDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeSectors).Returns(mockPostcodeSectorDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeSectors.AsNoTracking()).Returns(mockPostcodeSectorDbSet.Object); var postcodeDistricts = new List <PostcodeDistrict>() { new PostcodeDistrict() { ID = districtGuid, AreaGUID = areaGuid } }; var mockPostcodeDistrictDbSet = MockDbSet(postcodeDistricts); mockRMDBContext.Setup(x => x.Set <PostcodeDistrict>()).Returns(mockPostcodeDistrictDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeDistricts).Returns(mockPostcodeDistrictDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeDistricts.AsNoTracking()).Returns(mockPostcodeDistrictDbSet.Object); var postcodeAreas = new List <PostcodeArea>() { new PostcodeArea() { ID = areaGuid, Area = "Test Area" } }; var mockPostcodeAreasDbSet = MockDbSet(postcodeAreas); mockRMDBContext.Setup(x => x.Set <PostcodeArea>()).Returns(mockPostcodeAreasDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeAreas).Returns(mockPostcodeAreasDbSet.Object); mockRMDBContext.Setup(x => x.PostcodeAreas.AsNoTracking()).Returns(mockPostcodeAreasDbSet.Object); var mockUserRoleUnitDbSet = MockDbSet(userRoleUnits); mockRMDBContext.Setup(x => x.Set <UserRoleUnit>()).Returns(mockUserRoleUnitDbSet.Object); mockRMDBContext.Setup(x => x.UserRoleUnits).Returns(mockUserRoleUnitDbSet.Object); mockRMDBContext.Setup(x => x.UserRoleUnits.AsNoTracking()).Returns(mockUserRoleUnitDbSet.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 UnitLocationDataService(mockDatabaseFactory.Object, loggingHelperMock.Object); }
/// <summary> /// setup for nunit tests /// </summary> protected override void OnSetup() { // Data Setup List <PostalAddressIdentifier> postalAddressIdentifierList = new List <PostalAddressIdentifier>() { new PostalAddressIdentifier() { ID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918") } }; locationList = new List <Location>() { new Location() { ID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918") } }; List <UserRoleLocation> userRoleLocationList = new List <UserRoleLocation>() { new UserRoleLocation() { LocationID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918"), UserID = userId } }; postcodeHierarchyList = new List <PostcodeHierarchy>() { new PostcodeHierarchy() { ID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918"), PostcodeTypeGUID = postcodeTypeGUID, ParentPostcode = "111", Postcode = "123", } }; List <Postcode> postcodeList = new List <Postcode>() { new Postcode() { ID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918"), InwardCode = "a", OutwardCode = "b", PostcodeUnit = "unit1", } }; List <LocationReferenceData> locationReferenceDataList = new List <LocationReferenceData>() { new LocationReferenceData() { LocationID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918") } }; List <LocationPostcodeHierarchy> locationPostcodeHierarchyList = new List <LocationPostcodeHierarchy>() { new LocationPostcodeHierarchy() { PostcodeHierarchyID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918"), LocationID = new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918") } }; mockUnitManagerDbContext = CreateMock <UnitManagerDbContext>(); mockILoggingHelper = CreateMock <ILoggingHelper>(); // Setup for PostalAddressIdentifier var mockAsynEnumerable1 = new DbAsyncEnumerable <PostalAddressIdentifier>(postalAddressIdentifierList); var mockPostalAddressIdentifier = MockDbSet(postalAddressIdentifierList); mockPostalAddressIdentifier.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable1.AsQueryable().Provider); mockPostalAddressIdentifier.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable1.AsQueryable().Expression); mockPostalAddressIdentifier.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable1.AsQueryable().ElementType); mockPostalAddressIdentifier.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <PostalAddressIdentifier>)mockAsynEnumerable1).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <PostalAddressIdentifier>()).Returns(mockPostalAddressIdentifier.Object); mockUnitManagerDbContext.Setup(x => x.PostalAddressIdentifiers).Returns(mockPostalAddressIdentifier.Object); mockUnitManagerDbContext.Setup(c => c.PostalAddressIdentifiers.AsNoTracking()).Returns(mockPostalAddressIdentifier.Object); // Setup for Location var mockAsynEnumerable2 = new DbAsyncEnumerable <Location>(locationList); var mockLocation = MockDbSet(locationList); mockLocation.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable2.AsQueryable().Provider); mockLocation.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable2.AsQueryable().Expression); mockLocation.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable2.AsQueryable().ElementType); mockLocation.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Location>)mockAsynEnumerable2).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <Location>()).Returns(mockLocation.Object); mockUnitManagerDbContext.Setup(x => x.Locations).Returns(mockLocation.Object); mockUnitManagerDbContext.Setup(c => c.Locations.AsNoTracking()).Returns(mockLocation.Object); // Setup for UserRoleLocation var mockAsynEnumerable3 = new DbAsyncEnumerable <UserRoleLocation>(userRoleLocationList); var mockUserRoleLocation = MockDbSet(userRoleLocationList); mockUserRoleLocation.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable3.AsQueryable().Provider); mockUserRoleLocation.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable3.AsQueryable().Expression); mockUserRoleLocation.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable3.AsQueryable().ElementType); mockUserRoleLocation.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <UserRoleLocation>)mockAsynEnumerable3).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <UserRoleLocation>()).Returns(mockUserRoleLocation.Object); mockUnitManagerDbContext.Setup(x => x.UserRoleLocations).Returns(mockUserRoleLocation.Object); mockUnitManagerDbContext.Setup(c => c.UserRoleLocations.AsNoTracking()).Returns(mockUserRoleLocation.Object); // Setup for PostcodeHierarchy var mockAsynEnumerable4 = new DbAsyncEnumerable <PostcodeHierarchy>(postcodeHierarchyList); var mockPostcodeHierarchy = MockDbSet(postcodeHierarchyList); mockPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable4.AsQueryable().Provider); mockPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable4.AsQueryable().Expression); mockPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable4.AsQueryable().ElementType); mockPostcodeHierarchy.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <PostcodeHierarchy>)mockAsynEnumerable4).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <PostcodeHierarchy>()).Returns(mockPostcodeHierarchy.Object); mockUnitManagerDbContext.Setup(x => x.PostcodeHierarchies).Returns(mockPostcodeHierarchy.Object); // Setup for Postcode var mockAsynEnumerable5 = new DbAsyncEnumerable <Postcode>(postcodeList); var mockPostcode = MockDbSet(postcodeList); mockPostcode.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable5.AsQueryable().Provider); mockPostcode.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable5.AsQueryable().Expression); mockPostcode.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable5.AsQueryable().ElementType); mockPostcode.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <Postcode>)mockAsynEnumerable5).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <Postcode>()).Returns(mockPostcode.Object); mockUnitManagerDbContext.Setup(x => x.Postcodes).Returns(mockPostcode.Object); mockUnitManagerDbContext.Setup(c => c.Postcodes.AsNoTracking()).Returns(mockPostcode.Object); // Setup for Postcode var mockAsynEnumerable6 = new DbAsyncEnumerable <LocationReferenceData>(locationReferenceDataList); var mockLocationReferenceData = MockDbSet(locationReferenceDataList); mockLocationReferenceData.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable6.AsQueryable().Provider); mockLocationReferenceData.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable6.AsQueryable().Expression); mockLocationReferenceData.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable6.AsQueryable().ElementType); mockLocationReferenceData.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <LocationReferenceData>)mockAsynEnumerable6).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <LocationReferenceData>()).Returns(mockLocationReferenceData.Object); mockUnitManagerDbContext.Setup(x => x.LocationReferenceDatas).Returns(mockLocationReferenceData.Object); // Setup for LocationPostcodeHierarchy var mockAsynEnumerable7 = new DbAsyncEnumerable <LocationPostcodeHierarchy>(locationPostcodeHierarchyList); var mockLocationPostcodeHierarchy = MockDbSet(locationPostcodeHierarchyList); mockLocationPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.Provider).Returns(mockAsynEnumerable7.AsQueryable().Provider); mockLocationPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.Expression).Returns(mockAsynEnumerable7.AsQueryable().Expression); mockLocationPostcodeHierarchy.As <IQueryable>().Setup(mock => mock.ElementType).Returns(mockAsynEnumerable7.AsQueryable().ElementType); mockLocationPostcodeHierarchy.As <IDbAsyncEnumerable>().Setup(mock => mock.GetAsyncEnumerator()).Returns(((IDbAsyncEnumerable <LocationPostcodeHierarchy>)mockAsynEnumerable7).GetAsyncEnumerator()); mockUnitManagerDbContext.Setup(x => x.Set <LocationPostcodeHierarchy>()).Returns(mockLocationPostcodeHierarchy.Object); mockUnitManagerDbContext.Setup(x => x.LocationPostcodeHierarchies).Returns(mockLocationPostcodeHierarchy.Object); var rmTraceManagerMock = new Mock <IRMTraceManager>(); rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>())); mockILoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object); mockDatabaseFactory = CreateMock <IDatabaseFactory <UnitManagerDbContext> >(); mockDatabaseFactory.Setup(x => x.Get()).Returns(mockUnitManagerDbContext.Object); testCandidate = new UnitLocationDataService(mockDatabaseFactory.Object, mockILoggingHelper.Object); }