Пример #1
0
        public void PD_PostProjectExtents_Raptor_Fail()
        {
            // create the mock RaptorClient with successful result
            var mockRaptorClient = new Mock <IASNodeClient>();
            var mockLogger       = new Mock <ILoggerFactory>();

            var mockConfigStore = new Mock <IConfigurationStore>();

            mockConfigStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_TILES")).Returns(false);


            var trexCompactionDataProxy = new Mock <ITRexCompactionDataProxy>();
            var getExtentsResults       = false;
            var excludedSsIds           = new long[1]; // excluded surveyed surfaces

            excludedSsIds[0] = 1;

            // return results
            var extents = new T3DBoundingWorldExtent();

            // mock return result
            // this wont work as we need to mock higher level
            mockRaptorClient.Setup(prj => prj.GetDataModelExtents(544, It.IsAny <TSurveyedSurfaceID[]>(), out extents)).Returns(getExtentsResults);

            // create submitter
            var submitter = RequestExecutorContainerFactory.Build <ProjectExtentsSubmitter>(mockLogger.Object, mockRaptorClient.Object, configStore: mockConfigStore.Object, trexCompactionDataProxy: trexCompactionDataProxy.Object);
            // make request parameters
            var request = new ExtentRequest(544, null, excludedSsIds);

            // Act
            // Call controller
            Assert.ThrowsExceptionAsync <ServiceException>(async() => await submitter.ProcessAsync(request));
        }
Пример #2
0
        public async Task PD_PostProjectExtentsSuccessful()
        {
            // create the mock RaptorClient with successful result
            var mockRaptorClient        = new Mock <IASNodeClient>();
            var mockLogger              = new Mock <ILoggerFactory>();
            var mockConfigStore         = new Mock <IConfigurationStore>();
            var trexCompactionDataProxy = new Mock <ITRexCompactionDataProxy>();
            var getExtentsResults       = true;
            var excludedSsIds           = new long[1]; // excluded surveyed surfaces

            excludedSsIds[0] = 1;

            // return results
            var extents = new T3DBoundingWorldExtent();

            // mock return result
            // this wont work as we need to mock higher level
            mockRaptorClient.Setup(prj => prj.GetDataModelExtents(544, It.IsAny <TSurveyedSurfaceID[]>(), out extents)).Returns(getExtentsResults);

            // create submitter
            var submitter = RequestExecutorContainerFactory.Build <ProjectExtentsSubmitter>(mockLogger.Object, mockRaptorClient.Object, configStore: mockConfigStore.Object, trexCompactionDataProxy: trexCompactionDataProxy.Object);
            // make request parameters
            var request = new ExtentRequest(544, null, excludedSsIds);

            // Act
            // Call controller
            var result = await submitter.ProcessAsync(request);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Message == ContractExecutionResult.DefaultMessage, result.Message);
        }
Пример #3
0
        public async Task <ProjectExtentsResult> Post([FromBody] ExtentRequest request)
        {
            return(await RequestExecutorContainerFactory.
                   Build <ProjectExtentsSubmitter>(logger,
#if RAPTOR
                                                   raptorClient,
#endif
                                                   configStore : configStore, trexCompactionDataProxy : trexCompactionDataProxy, customHeaders : CustomHeaders)
                   .ProcessAsync(request) as ProjectExtentsResult);
        }
Пример #4
0
        public async Task PD_PostProjectExtents_TRex_Fail()
        {
            const short projectId = 544;

            var projectUid = Guid.NewGuid();

            var request = new ExtentRequest(projectId, projectUid, null);

            var mockLogger = new Mock <ILoggerFactory>();

            var mockConfigStore = new Mock <IConfigurationStore>();

#if RAPTOR
            mockConfigStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_TILES")).Returns(true);
#endif

            var exception = new ServiceException(HttpStatusCode.InternalServerError,
                                                 new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError,
                                                                             $"Get project extents has not been implemented in TRex yet. ProjectUid: {projectUid}"));

            var trexCompactionDataProxy = new Mock <ITRexCompactionDataProxy>();
            trexCompactionDataProxy.Setup(x => x.SendDataGetRequest <BoundingBox3DGrid>(projectUid.ToString(),
                                                                                        It.IsAny <string>(),
                                                                                        It.IsAny <IHeaderDictionary>(),
                                                                                        It.IsAny <List <KeyValuePair <string, string> > >()))
            .Throws(exception);

            var executor = RequestExecutorContainerFactory
                           .Build <ProjectExtentsSubmitter>(mockLogger.Object, configStore: mockConfigStore.Object, trexCompactionDataProxy: trexCompactionDataProxy.Object);

            var result = await Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request));

            Assert.AreEqual(HttpStatusCode.InternalServerError, result.Code);
            Assert.AreEqual(ContractExecutionStatesEnum.InternalProcessingError, result.GetResult.Code);
            Assert.AreEqual(exception.GetResult.Message, result.GetResult.Message);
        }