コード例 #1
0
        public async Task Place_Customer_Order_Should_Return_BadRequest()
        {
            // Arrange
            using var httpClient = new TestClientProvider().HttpClient;

            var tokenResponse = await httpClient.PostAsync($"/api/auth/token", new StringContent("{}", Encoding.UTF8, "application/json"));

            var token = JsonConvert.DeserializeObject <HttpServiceResponseBase <string> >(await tokenResponse.Content.ReadAsStringAsync()).Data;

            var customerId = "6003ec40986bbf1afe1d5336";
            var command    = new PlaceCustomerOrderCommand
            {
                Products = new System.Collections.Generic.List <ProductDto>()
            };

            var json = JsonConvert.SerializeObject(command);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            // Act
            httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
            var response = await httpClient.PostAsync($"/api/customers/{customerId}/orders", data);

            var customerOrderError = JsonConvert.DeserializeObject <HttpServiceResponseBase>(await response.Content.ReadAsStringAsync()).Error;

            // Assert
            customerOrderError.Exception.Should().NotBeNullOrEmpty();
            customerOrderError.Code.Should().Be(HttpStatusCode.BadRequest);
        }
コード例 #2
0
        public async Task <IActionResult> Post([FromRoute] string customerId, [FromBody] PlaceCustomerOrderCommand command)
        {
            command.CustomerId = customerId;
            var response = await _mediator.Send(command);

            return(Result(response, HttpStatusCode.Created));
        }
コード例 #3
0
        public async Task Place_Customer_Order_Should_Return_BadRequest()
        {
            // Arrange
            using var httpClient = new TestClientProvider().HttpClient;

            var tokenResponse = await httpClient.PostAsync($"/{AuthRoutes.TokenFullPath}", new StringContent("{}", Encoding.UTF8, "application/json"));

            var token = JsonConvert.DeserializeObject <ServiceResponse <string> >(await tokenResponse.Content.ReadAsStringAsync()).Data;

            var customerId = "60a03b395a473487fddaf5e9";
            var command    = new PlaceCustomerOrderCommand
            {
                Products = new List <ProductDto>()
            };

            var json = JsonConvert.SerializeObject(command);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            // Act
            httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
            var response = await httpClient.PostAsync($"{CustomerRoutes.Customers}/{customerId}/orders", data);

            var customerOrderError = JsonConvert.DeserializeObject <ServiceResponse>(await response.Content.ReadAsStringAsync()).Error;

            // Assert
            customerOrderError.Exception.Should().NotBeNullOrEmpty();
            customerOrderError.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
コード例 #4
0
        public async Task <IActionResult> Post([FromRoute] string customerId, [FromBody] PlaceCustomerOrderCommand command)
        {
            command.CustomerId = customerId;
            var result = await _mediator.Send(command);

            return(Created(string.Empty, new HttpServiceResponseBase <string> {
                Data = result, Code = HttpStatusCode.Created
            }));
        }
コード例 #5
0
        public async Task Place_Customer_Order_Should_Return_CustomerOrderId()
        {
            // Arrange
            using var httpClient = new TestClientProvider().HttpClient;

            var tokenResponse = await httpClient.PostAsync($"/api/auth/token", new StringContent("{}", Encoding.UTF8, "application/json"));

            var token = JsonConvert.DeserializeObject <HttpServiceResponseBase <string> >(await tokenResponse.Content.ReadAsStringAsync()).Data;

            var customerId = "6003ec40986bbf1afe1d5336";
            var command    = new PlaceCustomerOrderCommand
            {
                Products = new List <ProductDto>
                {
                    new ProductDto {
                        Id = "6003fba51d70ba3fd5b6443b", Quantity = 1
                    },
                    new ProductDto {
                        Id = "6003fba51d70ba3fd5b6443e", Quantity = 1
                    },
                    new ProductDto {
                        Id = "6003fba51d70ba3fd5b64441", Quantity = 1
                    }
                }
            };

            var json = JsonConvert.SerializeObject(command);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            // Act
            httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
            var response = await httpClient.PostAsync($"/api/customers/{customerId}/orders", data);

            var customerOrder = JsonConvert.DeserializeObject <HttpServiceResponseBase <string> >(await response.Content.ReadAsStringAsync()).Data;

            // Assert
            customerOrder.Should().NotBeNullOrEmpty();
            response.StatusCode.Should().Be(HttpStatusCode.Created);
        }