public async Task Then_The_Endpoint_Is_Called(
            int id,
            FindApprenticeshipTrainingApi config)
        {
            //Arrange
            var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >();

            configMock.Setup(x => x.Value).Returns(config);
            var response = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.Accepted
            };
            var deleteTestRequest  = new DeleteTestRequest(id, "https://test.local");
            var expectedUrl        = deleteTestRequest.DeleteUrl;
            var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl, config.Key, HttpMethod.Delete);
            var client             = new HttpClient(httpMessageHandler.Object);
            var apiClient          = new ApiClient(client, configMock.Object);


            //Act
            await apiClient.Delete(deleteTestRequest);

            //Assert
            httpMessageHandler.Protected()
            .Verify <Task <HttpResponseMessage> >(
                "SendAsync", Times.Once(),
                ItExpr.Is <HttpRequestMessage>(c =>
                                               c.Method.Equals(HttpMethod.Delete) &&
                                               c.RequestUri.AbsoluteUri.Equals(expectedUrl)),
                ItExpr.IsAny <CancellationToken>()
                );
        }
示例#2
0
        public async Task <DeleteTestResponse> DeleteTest(DeleteTestRequest request)
        {
            var cases         = Db.Cases.IncludeGroup(EntityGroups.ALL, Db);
            var casesToDelete = await filterCases(cases, request.FilteringOrders)
                                .ToArrayAsync();

            if (casesToDelete.Length > 0)
            {
                foreach (var caseToDelete in casesToDelete)
                {
                    Db.Cases.Remove(caseToDelete);
                    await Db.SaveChangesAsync(); // i know...

                    MessageProducer.FireTestDeleted(new TestDeletedMessage(caseToDelete.TestId, caseToDelete.TestName));
                }
            }

            return(new DeleteTestResponse());
        }
示例#3
0
        public async Task Then_The_Endpoint_Is_Called(
            string authToken,
            int id,
            TestInternalApiConfiguration config)
        {
            //Arrange
            var azureClientCredentialHelper = new Mock <IAzureClientCredentialHelper>();

            azureClientCredentialHelper.Setup(x => x.GetAccessTokenAsync(config.Identifier)).ReturnsAsync(authToken);
            config.Url = "https://test.local";
            var response = new HttpResponseMessage
            {
                Content    = new StringContent(""),
                StatusCode = HttpStatusCode.Created
            };
            var deleteTestReequest = new DeleteTestRequest(id);
            var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, $"{config.Url}{deleteTestReequest.DeleteUrl}", "delete");
            var client             = new HttpClient(httpMessageHandler.Object);
            var hostingEnvironment = new Mock <IWebHostEnvironment>();
            var clientFactory      = new Mock <IHttpClientFactory>();

            clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client);

            hostingEnvironment.Setup(x => x.EnvironmentName).Returns("Staging");
            var actual = new InternalApiClient <TestInternalApiConfiguration>(clientFactory.Object, config, hostingEnvironment.Object, azureClientCredentialHelper.Object);

            //Act
            await actual.Delete(deleteTestReequest);

            //Assert
            httpMessageHandler.Protected()
            .Verify <Task <HttpResponseMessage> >(
                "SendAsync", Times.Once(),
                ItExpr.Is <HttpRequestMessage>(c =>
                                               c.Method.Equals(HttpMethod.Delete) &&
                                               c.RequestUri.AbsoluteUri.Equals($"{config.Url}{deleteTestReequest.DeleteUrl}") &&
                                               c.Headers.Authorization.Scheme.Equals("Bearer") &&
                                               c.Headers.FirstOrDefault(h => h.Key.Equals("X-Version")).Value.FirstOrDefault() == "2.0" &&
                                               c.Headers.Authorization.Parameter.Equals(authToken)),
                ItExpr.IsAny <CancellationToken>()
                );
        }
        public void Then_If_It_Is_Not_Successful_An_Exception_Is_Thrown(
            int id,
            FindApprenticeshipTrainingApi config)
        {
            //Arrange
            var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >();

            configMock.Setup(x => x.Value).Returns(config);
            var response = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.BadRequest
            };
            var deleteTestRequest  = new DeleteTestRequest(id, "https://test.local");
            var expectedUrl        = deleteTestRequest.DeleteUrl;
            var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl, config.Key, HttpMethod.Delete);
            var client             = new HttpClient(httpMessageHandler.Object);
            var apiClient          = new ApiClient(client, configMock.Object);

            //Act Assert
            Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Delete(deleteTestRequest));
        }
 /// <summary>
 /// Explicitly decline to implement a test.
 ///
 /// This removes the test from subsequent `ListTests` calls, and
 /// attempting to do the test will error.
 ///
 /// This method will error if attempting to delete a required test.
 /// </summary>
 /// <param name="request">The request object containing all of the parameters for the API call.</param>
 /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
 /// <returns>The RPC response.</returns>
 public override void DeleteTest(DeleteTestRequest request, gaxgrpc::CallSettings callSettings = null)
 {
     Modify_DeleteTestRequest(ref request, ref callSettings);
     _callDeleteTest.Sync(request, callSettings);
 }
 /// <summary>
 /// Explicitly decline to implement a test.
 ///
 /// This removes the test from subsequent `ListTests` calls, and
 /// attempting to do the test will error.
 ///
 /// This method will error if attempting to delete a required test.
 /// </summary>
 /// <param name="request">The request object containing all of the parameters for the API call.</param>
 /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
 /// <returns>A Task containing the RPC response.</returns>
 public override stt::Task DeleteTestAsync(DeleteTestRequest request, gaxgrpc::CallSettings callSettings = null)
 {
     Modify_DeleteTestRequest(ref request, ref callSettings);
     return(_callDeleteTest.Async(request, callSettings));
 }
 partial void Modify_DeleteTestRequest(ref DeleteTestRequest request, ref gaxgrpc::CallSettings settings);
 /// <summary>
 /// Explicitly decline to implement a test.
 ///
 /// This removes the test from subsequent `ListTests` calls, and
 /// attempting to do the test will error.
 ///
 /// This method will error if attempting to delete a required test.
 /// </summary>
 /// <param name="request">The request object containing all of the parameters for the API call.</param>
 /// <param name="cancellationToken">A <see cref="st::CancellationToken"/> to use for this RPC.</param>
 /// <returns>A Task containing the RPC response.</returns>
 public virtual stt::Task DeleteTestAsync(DeleteTestRequest request, st::CancellationToken cancellationToken) =>
 DeleteTestAsync(request, gaxgrpc::CallSettings.FromCancellationToken(cancellationToken));
 /// <summary>
 /// Explicitly decline to implement a test.
 ///
 /// This removes the test from subsequent `ListTests` calls, and
 /// attempting to do the test will error.
 ///
 /// This method will error if attempting to delete a required test.
 /// </summary>
 /// <param name="request">The request object containing all of the parameters for the API call.</param>
 /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
 /// <returns>A Task containing the RPC response.</returns>
 public virtual stt::Task DeleteTestAsync(DeleteTestRequest request, gaxgrpc::CallSettings callSettings = null) =>
 throw new sys::NotImplementedException();
 /// <summary>
 /// Explicitly decline to implement a test.
 ///
 /// This removes the test from subsequent `ListTests` calls, and
 /// attempting to do the test will error.
 ///
 /// This method will error if attempting to delete a required test.
 /// </summary>
 /// <param name="request">The request object containing all of the parameters for the API call.</param>
 /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
 /// <returns>The RPC response.</returns>
 public virtual void DeleteTest(DeleteTestRequest request, gaxgrpc::CallSettings callSettings = null) =>
 throw new sys::NotImplementedException();
示例#11
0
 public async Task Delete([FromUri] DeleteTestRequest request)
 {
     await _mediator.ExecuteAsync(request).ConfigureAwait(false);
 }