/// <summary> /// Creates automatic access link. /// </summary> /// <param name="accessLinkDto">Access link data object.</param> /// <returns>Success.</returns> public bool CreateAccessLink(AccessLinkDataDTO accessLinkDto) { try { using (loggingHelper.RMTraceManager.StartTrace("DataService.CreateAutomaticAccessLink")) { string methodName = typeof(AccessLinkDataService) + "." + nameof(CreateAccessLink); loggingHelper.LogMethodEntry(methodName, priority, entryEventId); AccessLink entity = new AccessLink(); bool isAccessLinkCreationSuccess = false; ConfigureMapper(); entity = Mapper.Map <AccessLinkDataDTO, AccessLink>(accessLinkDto); DataContext.AccessLinks.Add(entity); DataContext.SaveChanges(); isAccessLinkCreationSuccess = true; loggingHelper.LogMethodExit(methodName, priority, exitEventId); return(isAccessLinkCreationSuccess); } } catch (DbUpdateException dbUpdateException) { throw new DataAccessException(dbUpdateException, string.Format(ErrorConstants.Err_SqlAddException, string.Concat("automatic access link"))); } }
/// <summary> /// Setup for Nunit Tests. /// </summary> protected override void OnSetup() { mockLoggingHelper = CreateMock <ILoggingHelper>(); unit1Guid = Guid.NewGuid(); unit2Guid = Guid.NewGuid(); unit3Guid = Guid.NewGuid(); user1Id = System.Guid.NewGuid(); user2Id = System.Guid.NewGuid(); var unitBoundary = DbGeometry.PolygonFromText("POLYGON((511570.8590967182 106965.35195621933, 511570.8590967182 107474.95297542136, 512474.1409032818 107474.95297542136, 512474.1409032818 106965.35195621933, 511570.8590967182 106965.35195621933))", 27700); var location = new List <Location>() { new Location() { ID = unit1Guid, Shape = unitBoundary } }; var networkLinks = new List <NetworkLink>() { new NetworkLink() { LinkGeometry = unitBoundary, } }; var networkLink = new NetworkLink() { LinkGeometry = unitBoundary, }; var accessLink = new List <AccessLink>() { new AccessLink() { ID = Guid.NewGuid(), NetworkLink = networkLink } }; var deliveryPoint = new List <DeliveryPoint>() { new DeliveryPoint() { NetworkNode = new NetworkNode() { Location = new Location() { Shape = unitBoundary } } } }; var networkNodeDataDTO = new NetworkNodeDataDTO() { ID = Guid.NewGuid(), Location = new LocationDataDTO() { ID = Guid.NewGuid(), Shape = unitBoundary, RowCreateDateTime = DateTime.UtcNow } }; var accessLinkDataDTOs = new AccessLinkDataDTO() { Approved = true, ID = Guid.NewGuid(), WorkloadLengthMeter = 40, LinkDirectionGUID = Guid.NewGuid(), ConnectedNetworkLinkID = Guid.NewGuid(), AccessLinkTypeGUID = Guid.NewGuid() }; var accessLinkStatus = new AccessLinkStatusDataDTO() { ID = Guid.NewGuid(), NetworkLinkID = Guid.NewGuid(), AccessLinkStatusGUID = Guid.NewGuid(), StartDateTime = DateTime.UtcNow, RowCreateDateTime = DateTime.UtcNow }; netWorkLinkDataDto = new NetworkLinkDataDTO() { ID = Guid.NewGuid(), DataProviderGUID = Guid.NewGuid(), NetworkLinkTypeGUID = Guid.NewGuid(), StartNodeID = Guid.NewGuid(), EndNodeID = Guid.NewGuid(), LinkLength = 40, LinkGeometry = unitBoundary, RowCreateDateTime = DateTime.UtcNow, }; var mockAsynEnumerable = new DbAsyncEnumerable <AccessLink>(accessLink); mockFmoDbContext = CreateMock <AccessLinkDBContext>(); mockFmoDbContext.Setup(x => x.SaveChanges()).Returns(1); var mockAccessLinkDataService = MockDbSet(accessLink); mockFmoDbContext.Setup(x => x.Set <AccessLink>()).Returns(mockAccessLinkDataService.Object); mockFmoDbContext.Setup(x => x.AccessLinks).Returns(mockAccessLinkDataService.Object); // mockFmoDbContext.Setup(c => c.AccessLinks.AsNoTracking()).Returns(mockAccessLinkDataService.Object); mockAccessLinkDataService.Setup(x => x.Include(It.IsAny <string>())).Returns(mockAccessLinkDataService.Object); mockAccessLinkDataService.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService.Object); var mockAccessLinkDataService1 = MockDbSet(networkLinks); mockFmoDbContext.Setup(x => x.Set <NetworkLink>()).Returns(mockAccessLinkDataService1.Object); mockFmoDbContext.Setup(x => x.NetworkLinks).Returns(mockAccessLinkDataService1.Object); // mockFmoDbContext.Setup(c => c.NetworkLinks.AsNoTracking()).Returns(mockAccessLinkDataService1.Object); mockAccessLinkDataService1.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService1.Object); var mockAccessLinkDataService4 = MockDbSet(deliveryPoint); mockFmoDbContext.Setup(x => x.Set <DeliveryPoint>()).Returns(mockAccessLinkDataService4.Object); mockFmoDbContext.Setup(x => x.DeliveryPoints).Returns(mockAccessLinkDataService4.Object); mockAccessLinkDataService4.Setup(x => x.AsNoTracking()).Returns(mockAccessLinkDataService4.Object); var mockAsynEnumerable2 = new DbAsyncEnumerable <Location>(location); var mockAccessLinkDataService2 = MockDbSet(location); mockFmoDbContext.Setup(x => x.Set <Location>()).Returns(mockAccessLinkDataService2.Object); mockFmoDbContext.Setup(x => x.Locations).Returns(mockAccessLinkDataService2.Object); mockFmoDbContext.Setup(c => c.Locations.AsNoTracking()).Returns(mockAccessLinkDataService2.Object); mockDatabaseFactory = CreateMock <IDatabaseFactory <AccessLinkDBContext> >(); mockDatabaseFactory.Setup(x => x.Get()).Returns(mockFmoDbContext.Object); var rmTraceManagerMock = new Mock <IRMTraceManager>(); rmTraceManagerMock.Setup(x => x.StartTrace(It.IsAny <string>(), It.IsAny <Guid>())); mockLoggingHelper.Setup(x => x.RMTraceManager).Returns(rmTraceManagerMock.Object); testCandidate = new AccessLinkDataService(mockDatabaseFactory.Object, mockLoggingHelper.Object); }