示例#1
0
        public async Task CutFillExecutor_TRex_NoResult()
        {
            var projectUid = Guid.NewGuid();
            var request    = new CutFillDetailsRequest(0, projectUid, null, null, null, null);

            var configStore = new Mock <IConfigurationStore>();

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

            var exception = new ServiceException(HttpStatusCode.InternalServerError,
                                                 new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError,
                                                                             $"Cut/Fill statistics have not been implemented in TRex yet. ProjectUid: {projectUid}"));

            var tRexProxy = new Mock <ITRexCompactionDataProxy>();
            tRexProxy.Setup(x => x.SendDataPostRequest <CompactionCutFillDetailedResult, TRexCutFillDetailsRequest>(It.IsAny <TRexCutFillDetailsRequest>(), It.IsAny <string>(), It.IsAny <IHeaderDictionary>(), false))
            .Throws(exception);

            var executor = RequestExecutorContainerFactory
                           .Build <CompactionCutFillExecutor>(logger, configStore: configStore.Object,
                                                              trexCompactionDataProxy: tRexProxy.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);
        }
示例#2
0
        public void CutFillExecutor_Raptor_NoResult()
        {
            var request = new CutFillDetailsRequest(0, null, null, null, null, null);

            var details = new TCutFillDetails();

            var raptorClient = new Mock <IASNodeClient>();
            var configStore  = new Mock <IConfigurationStore>();

            configStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_CUTFILL")).Returns(false);

            raptorClient
            .Setup(x => x.GetCutFillDetails(request.ProjectId.Value, It.IsAny <TASNodeRequestDescriptor>(),
                                            It.IsAny <TCutFillSettings>(), It.IsAny <TICFilterSettings>(), It.IsAny <TICLiftBuildSettings>(),
                                            out details))
            .Returns(TASNodeErrorStatus.asneUnknown);

            var executor = RequestExecutorContainerFactory
                           .Build <CompactionCutFillExecutor>(logger, raptorClient.Object, configStore: configStore.Object);

            Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request));
        }
示例#3
0
        public async Task CutFillExecutorSuccess()
        {
            var request = new CutFillDetailsRequest(0, null, null, null, null, null);

            var details = new TCutFillDetails {
                Percents = new[] { 5.0, 20.0, 13.0, 10.0, 22.0, 12.0, 18.0 }
            };

            var raptorClient = new Mock <IASNodeClient>();
            var configStore  = new Mock <IConfigurationStore>();

            raptorClient
            .Setup(x => x.GetCutFillDetails(request.ProjectId.Value, It.IsAny <TASNodeRequestDescriptor>(),
                                            It.IsAny <TCutFillSettings>(), It.IsAny <TICFilterSettings>(), It.IsAny <TICLiftBuildSettings>(),
                                            out details))
            .Returns(TASNodeErrorStatus.asneOK);

            var executor = RequestExecutorContainerFactory
                           .Build <CompactionCutFillExecutor>(logger, raptorClient.Object, configStore: configStore.Object);
            var result = await executor.ProcessAsync(request) as CompactionCutFillDetailedResult;

            Assert.IsNotNull(result, "Result should not be null");
            Assert.AreEqual(details.Percents, result.Percents, "Wrong percents");
        }