Exemple #1
0
 private string ToCanonicalString(HttpExecutionRequest httpExecRequest) =>
 $"{httpExecRequest.ExecutionId}|" +
 $"{httpExecRequest.ExecutionProfileName}|" +
 $"{httpExecRequest.ExtensionId}|" +
 $"{httpExecRequest.ExtensionVersionId}|" +
 $"{httpExecRequest.StatusUpdateKey}|" +
 $"{httpExecRequest.GetExecutionStatusUrl}|" +
 $"{httpExecRequest.UpdateExecutionStatusUrl}";
Exemple #2
0
 public IActionResult PostEcho(HttpExecutionRequest execRequest)
 {
     using (_logger.BeginScope("Echo Post"))
     {
         HttpExecutionResponse httpExecResponse = new HttpExecutionResponse();
         httpExecResponse.ExecutionId  = execRequest.ExecutionId;
         httpExecResponse.ResponseData = JObject.FromObject(execRequest);
         return(Ok(httpExecResponse));
     }
 }
        public async void ExecuteAsync_ExecutionRequested_ShouldPostExecutionRequestToExtension()
        {
            var mockJsonHttpClient         = new Mock <IJsonHttpClient>();
            var mockExecServiceProvider    = new Mock <IExecutionServiceProvider>();
            var mockInputAccessorProvider  = new Mock <IInputObjectAccessorProvider>();
            var mockOutputAccessorProvider = new Mock <IOutputObjectAccessorProvider>();
            var mockSigner = new Mock <ISigner <HttpExecutionRequest> >();
            var mockLogger = new Mock <ILogger <JsonHttpExecutionAdapter> >();

            var execAdapter = new JsonHttpExecutionAdapter(
                mockLogger.Object,
                mockJsonHttpClient.Object,
                mockExecServiceProvider.Object,
                mockInputAccessorProvider.Object,
                mockOutputAccessorProvider.Object,
                mockSigner.Object);

            var execRequest = CreateDefaultExecutionRequest();

            SetupDefaultMockExecutionServiceProvider(execRequest, mockExecServiceProvider);
            SetupDefaultMockInputObjectAccessorProvider(execRequest, mockInputAccessorProvider);
            SetupDefaultMockOutputObjectAccessorProvider(execRequest, mockOutputAccessorProvider);

            string executionUrl = null;
            HttpExecutionRequest httpExecRequest = null;

            execRequest.ExecutionParameters = JObject.FromObject(execRequest);

            var httpExecResponse = new HttpExecutionResponse {
                ExecutionId = execRequest.ExecutionId
            };

            mockJsonHttpClient
            .Setup(hc => hc.PostAsync <HttpExecutionResponse>(defaultHttpExtensionSettings.ExecutionUrl, It.IsAny <HttpExecutionRequest>()))
            .Returns(Task.FromResult(new HttpResponse <HttpExecutionResponse>(HttpStatusCode.OK, httpExecResponse)))
            .Callback <string, object>((u, er) =>
            {
                executionUrl    = u;
                httpExecRequest = er as HttpExecutionRequest;
            });

            await execAdapter.ExecuteAsync(execRequest, CancellationToken.None);

            executionUrl.Should().NotBeNull();
            httpExecRequest.Should().NotBeNull();

            executionUrl.Should().Be(DefaultExtensionExecutionUrl);

            httpExecRequest.CreatedDateTimeUtc.Should().Be(execRequest.CreatedDateTimeUtc);
            httpExecRequest.ExecutionId.Should().Be(execRequest.ExecutionId);
            httpExecRequest.ExecutionProfileName.Should().Be(execRequest.ExecutionProfileName);
            httpExecRequest.Executor.Should().Be(execRequest.Executor);
            httpExecRequest.ExpirationDateTimeUtc.Should().Be(execRequest.ExecutionTimeoutDateTimeUtc);
            httpExecRequest.ExtensionId.Should().Be(execRequest.ExtensionId);
            httpExecRequest.ExtensionVersionId.Should().Be(execRequest.ExtensionVersionId);
            httpExecRequest.GetExecutionStatusUrl.Should().Be(execRequest.GetExecutionStatusUrl);
            httpExecRequest.Priority.Should().Be(execRequest.Priority);
            httpExecRequest.Services.Should().BeEquivalentTo(defaultExecutionServiceConfiguration);
            httpExecRequest.StatusUpdateKey.Should().Be(execRequest.StatusUpdateKey);
            httpExecRequest.UpdateExecutionStatusUrl.Should().Be(execRequest.UpdateExecutionStatusUrl);
            httpExecRequest.RequestParameters.Should().BeEquivalentTo(execRequest.ExecutionParameters);
        }