public void ProjectStatisticsExecutor_TRex_Success() { var excludedSurveyedSurfaceUids = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; var excludedSurveyedSurfaceIds = new long[] { 444, 777, 888 }; var request = new ProjectStatisticsMultiRequest(Guid.NewGuid(), 123, excludedSurveyedSurfaceUids, excludedSurveyedSurfaceIds); var expectedResult = new ProjectStatisticsResult(ContractExecutionStatesEnum.ExecutedSuccessfully) { startTime = DateTime.UtcNow.AddDays(-5), endTime = DateTime.UtcNow.AddDays(-1), cellSize = 32.5, indexOriginOffset = 10, extents = new BoundingBox3DGrid(10, 500, 0, 20, 510, 0) }; var tRexProxy = new Mock <ITRexCompactionDataProxy>(); tRexProxy.Setup(x => x.SendDataPostRequest <ProjectStatisticsResult, ProjectStatisticsTRexRequest>(It.IsAny <ProjectStatisticsTRexRequest>(), It.IsAny <string>(), It.IsAny <IHeaderDictionary>(), false)) .ReturnsAsync((expectedResult)); var configStore = new Mock <IConfigurationStore>(); configStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_PROJECTSTATISTICS")).Returns(true); var executor = RequestExecutorContainerFactory .Build <ProjectStatisticsExecutor>(logger, configStore: configStore.Object, trexCompactionDataProxy: tRexProxy.Object, customHeaders: _customHeaders); var result = executor.ProcessAsync(request).Result as ProjectStatisticsResult; Assert.IsNotNull(result, "Result should not be null"); Assert.AreEqual(expectedResult.startTime, result.startTime, "Wrong startTime"); Assert.AreEqual(expectedResult.extents.MaxX, result.extents.MaxX, "Wrong MaxX extent"); }
protected override ContractExecutionResult ProcessEx <T>(T item) { var request = CastRequestObjectTo <ProjectStatisticsTRexRequest>(item); var siteModel = GetSiteModel(request.ProjectUid); var result = new ProjectStatisticsResult(); if (siteModel != null) { var extents = siteModel.GetAdjustedDataModelSpatialExtents(request.ExcludedSurveyedSurfaceUids); result.extents = new BoundingBox3DGrid( extents.MinX, extents.MinY, extents.MinZ, extents.MaxX, extents.MaxY, extents.MaxZ ); var startEndDates = siteModel.GetDateRange(); var format = "yyyy-MM-ddTHH-mm-ss.fffffff"; result.startTime = DateTime.ParseExact(startEndDates.startUtc.ToString(format, CultureInfo.InvariantCulture), format, CultureInfo.InvariantCulture); result.endTime = DateTime.ParseExact(startEndDates.endUtc.ToString(format, CultureInfo.InvariantCulture), format, CultureInfo.InvariantCulture); result.cellSize = siteModel.Grid.CellSize; result.indexOriginOffset = siteModel.Grid.IndexOriginOffset; } return(result); }
public async Task ValidateProjectExecutor_Delete_3d_HasData() { var extents = new ProjectStatisticsResult { extents = new BoundingBox3DGrid(10, 10, 10, 20, 20, 20) }; var extentsProxy = new Mock <IProductivity3dV2ProxyCompaction>(); extentsProxy.Setup(ep => ep.GetProjectStatistics(It.IsAny <Guid>(), It.IsAny <IHeaderDictionary>())).ReturnsAsync(extents); var request = new ProjectValidateDto { AccountTrn = _customerTrn, ProjectTrn = _projectTrn, UpdateType = CwsUpdateType.DeleteProject }; var executor = CreateExecutor(productivity3dV2ProxyCompaction: extentsProxy.Object); var result = await executor.ProcessAsync(MapProjectValidation(request)); result.ShouldBe(141, "Cannot delete a project that has 3D production (tag file) data"); }
public async Task ValidateProjectExecutor_Delete_3d_NoData_2() { var extents = new ProjectStatisticsResult { extents = new BoundingBox3DGrid(0, 0, 0, 0, 0, 0) }; var extentsProxy = new Mock <IProductivity3dV2ProxyCompaction>(); extentsProxy.Setup(ep => ep.GetProjectStatistics(It.IsAny <Guid>(), It.IsAny <IHeaderDictionary>())).ReturnsAsync(extents); var request = new ProjectValidateDto { AccountTrn = _customerTrn, ProjectTrn = _projectTrn, UpdateType = CwsUpdateType.DeleteProject }; var executor = CreateExecutor(productivity3dV2ProxyCompaction: extentsProxy.Object); var result = await executor.ProcessAsync(MapProjectValidation(request)); result.IsSuccessResponse(); }