/// <summary> /// Get the postcode sector by the UDPRN id /// </summary> /// <param name="udprn">UDPRN id</param> /// <returns>PostcodeSectorDataDTO</returns> public async Task <PostcodeSectorDataDTO> GetPostcodeSectorByUdprn(int udprn) { string methodName = typeof(UnitLocationDataService) + "." + nameof(GetPostcodeSectorByUdprn); using (loggingHelper.RMTraceManager.StartTrace("DataService.GetPostcodeSectorByUdprn")) { loggingHelper.LogMethodEntry(methodName, LoggerTraceConstants.UnitManagerAPIPriority, LoggerTraceConstants.PostCodeSectorDataServiceMethodEntryEventId); var postcodeSector = await(from ph in DataContext.PostcodeHierarchies.AsNoTracking() join pc in DataContext.Postcodes.AsNoTracking() on ph.ID equals pc.ID join pa in DataContext.PostalAddresses on ph.Postcode equals pa.Postcode where pa.UDPRN == udprn select ph.ParentPostcode.Trim()).FirstOrDefaultAsync(); var postcodeDistrict = await(from ph in DataContext.PostcodeHierarchies.AsNoTracking() join ph2 in DataContext.PostcodeHierarchies.AsNoTracking() on ph.ParentPostcode equals ph2.Postcode join pc in DataContext.Postcodes.AsNoTracking() on ph.ID equals pc.ID join pa in DataContext.PostalAddresses on ph.Postcode equals pa.Postcode where pa.UDPRN == udprn select ph2.ParentPostcode.Trim()).FirstOrDefaultAsync(); PostcodeSectorDataDTO postCodeSectorDataDTO = new PostcodeSectorDataDTO { District = postcodeDistrict, Sector = postcodeSector }; loggingHelper.LogMethodEntry(methodName, LoggerTraceConstants.UnitManagerAPIPriority, LoggerTraceConstants.PostCodeSectorDataServiceMethodExitEventId); return(postCodeSectorDataDTO); } }
/// <summary> /// Setup for Nunit Tests /// </summary> protected override void OnSetup() { SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); mockUnitLocationDataService = CreateMock <IUnitLocationDataService>(); mockPostCodeSectorDataService = CreateMock <IPostcodeSectorDataService>(); mockPostCodeDataService = CreateMock <IPostcodeDataService>(); mockScenarioDataService = CreateMock <IScenarioDataService>(); loggingHelperMock = CreateMock <ILoggingHelper>(); mockUnitLocationDataService = CreateMock <IUnitLocationDataService>(); mockUnitManagerIntegrationService = CreateMock <IUnitManagerIntegrationService>(); mockPostalAddressDataService = CreateMock <IPostalAddressDataService>(); userID = System.Guid.Parse("A867065B-B91E-E711-9F8C-28D244AEF9ED"); deliveryUnitID = System.Guid.Parse("B51AA229-C984-4CA6-9C12-510187B81050"); 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); actualDeliveryUnitListForUserResult = new List <UnitLocationDTO>() { new UnitLocationDTO() { ID = Guid.NewGuid(), UnitName = "UnitOne", UnitBoundryPolygon = unitBoundary } }; List <UnitLocationDataDTO> unitLocationDataDTOList = new List <UnitLocationDataDTO>() { new UnitLocationDataDTO() { LocationId = Guid.NewGuid(), Name = "UnitOne", Area = "Polygon", Shape = unitBoundary } }; CommonLibrary.EntityFramework.DTO.ReferenceDataCategoryDTO referenceDataCategoryDTO = new CommonLibrary.EntityFramework.DTO.ReferenceDataCategoryDTO() { CategoryName = "PostalAddressType", ReferenceDatas = new List <CommonLibrary.EntityFramework.DTO.ReferenceDataDTO>() { new CommonLibrary.EntityFramework.DTO.ReferenceDataDTO() { ReferenceDataValue = PostCodeTypeCategory.PostcodeSector.GetDescription() }, new CommonLibrary.EntityFramework.DTO.ReferenceDataDTO() { ReferenceDataValue = PostCodeTypeCategory.PostcodeDistrict.GetDescription() } } }; PostcodeSectorDataDTO postcodeSectorDataDTO = new PostcodeSectorDataDTO() { }; List <PostcodeDataDTO> postcodeDataDTOList = new List <PostcodeDataDTO>() { new PostcodeDataDTO() { PostcodeUnit = "Unit1", ID = new Guid("B51AA229-C984-4CA6-9C12-510187B81050") } }; List <ScenarioDataDTO> scenarioDataDTOList = new List <ScenarioDataDTO>() { new ScenarioDataDTO() { } }; List <PostalAddressDataDTO> postalAddressDataServiceList = new List <PostalAddressDataDTO>() { new PostalAddressDataDTO() { AddressType_GUID = new Guid("A867065B-B91E-E711-9F8C-28D244AEF9EC"), BuildingName = "bldg1", BuildingNumber = 1, SubBuildingName = "subbldg" } }; List <DeliveryRouteDTO> deliveryRouteDTOList = new List <DeliveryRouteDTO>() { }; // setup methods mockUnitManagerIntegrationService.Setup(x => x.GetReferenceDataGuId(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(new Guid("A867065B-B91E-E711-9F8C-28D244AEF9EC")); mockUnitLocationDataService.Setup(x => x.GetUnitsByUser(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(unitLocationDataDTOList); mockUnitManagerIntegrationService.Setup(x => x.GetReferenceDataSimpleLists(It.IsAny <string>())).ReturnsAsync(referenceDataCategoryDTO); mockPostCodeSectorDataService.Setup(x => x.GetPostcodeSectorByUdprn(It.IsAny <int>())).ReturnsAsync(postcodeSectorDataDTO); mockPostCodeDataService.Setup(x => x.GetPostcodeUnitForBasicSearch(It.IsAny <SearchInputDataDto>())).ReturnsAsync(postcodeDataDTOList); mockPostCodeDataService.Setup(x => x.GetPostcodeUnitCount(It.IsAny <SearchInputDataDto>())).ReturnsAsync(5); mockPostCodeDataService.Setup(x => x.GetPostcodeUnitForAdvanceSearch(It.IsAny <SearchInputDataDto>())).ReturnsAsync(postcodeDataDTOList); mockPostCodeDataService.Setup(x => x.GetPostcodeID(It.IsAny <string>())).ReturnsAsync(postcodeDataDTOList[0]); mockScenarioDataService.Setup(x => x.GetScenariosByOperationStateAndDeliveryUnit(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(scenarioDataDTOList); mockUnitLocationDataService.Setup(x => x.GetPostcodes(It.IsAny <List <Guid> >(), It.IsAny <Guid>())).ReturnsAsync(postcodeDataDTOList); mockPostCodeDataService.Setup(x => x.GetApproxLocation(It.IsAny <string>(), It.IsAny <Guid>())).ReturnsAsync(unitBoundary); mockPostalAddressDataService.Setup(x => x.GetPostalAddressDetails(It.IsAny <string>(), It.IsAny <Guid>())).ReturnsAsync(postalAddressDataServiceList); mockUnitManagerIntegrationService.Setup(x => x.GetRouteData(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(deliveryRouteDTOList); mockPostalAddressDataService.Setup(x => x.GetPostalAddressSearchDetails(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <List <Guid> >())).ReturnsAsync(new List <string>() { "123" }); 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 UnitLocationBusinessService(mockUnitLocationDataService.Object, mockPostCodeSectorDataService.Object, mockPostCodeDataService.Object, mockScenarioDataService.Object, mockPostalAddressDataService.Object, loggingHelperMock.Object, mockUnitManagerIntegrationService.Object); }