コード例 #1
0
        public async Task <ActionResult <ViewCustomerQueryResponse> > ViewCustomerAsync(Guid id)
        {
            var request = new ViewCustomerQuery
            {
                Id = id,
            };

            var response = await _messageBus.SendAsync(request);

            return(Ok(response));
        }
コード例 #2
0
        public async Task DeleteCustomer_ValidRequest_ReturnsResponse()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequests = new List <CreateCustomerCommand>
            {
                new CreateCustomerCommand
                {
                    FirstName = "Mary",
                    LastName  = "Smith",
                },

                new CreateCustomerCommand
                {
                    FirstName = "John",
                    LastName  = "McDonald",
                },

                new CreateCustomerCommand
                {
                    FirstName = "Rob",
                    LastName  = "McDonald",
                },
            };

            var createHttpResponses = await CreateCustomersAsync(createRequests);

            // Act

            var id            = createHttpResponses[1].Data.Id;
            var deleteRequest = new DeleteCustomerCommand {
                Id = id
            };
            var deleteHttpResponse = await Fixture.Api.Customers.DeleteCustomerAsync(deleteRequest, header);

            // Assert

            deleteHttpResponse.StatusCode.Should().Be(HttpStatusCode.NoContent);

            var findRequest = new ViewCustomerQuery {
                Id = id
            };
            var findHttpResponse = await Fixture.Api.Customers.ViewCustomerAsync(findRequest, header);

            findHttpResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
コード例 #3
0
        public async Task ViewCustomer_ValidRequest_ReturnsCustomer()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequests = new List <CreateCustomerCommand>
            {
                new CreateCustomerCommand
                {
                    FirstName = "Mary",
                    LastName  = "Smith",
                },

                new CreateCustomerCommand
                {
                    FirstName = "John",
                    LastName  = "McDonald",
                },

                new CreateCustomerCommand
                {
                    FirstName = "Rob",
                    LastName  = "McDonald",
                },
            };

            var createHttpResponses = await CreateCustomersAsync(createRequests);

            // Act

            var someCreateResponse = createHttpResponses[1].Data;
            var id          = someCreateResponse.Id;
            var findRequest = new ViewCustomerQuery {
                Id = id
            };
            var findHttpResponse = await Fixture.Api.Customers.ViewCustomerAsync(findRequest, header);

            // Assert

            findHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK);

            var findResponse = findHttpResponse.Data;

            findResponse.Should().BeEquivalentTo(someCreateResponse);
        }
コード例 #4
0
        public async Task ViewCustomer_NotExistRequest_ThrowsNotFoundRequestException()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequests = new List <CreateCustomerCommand>
            {
                new CreateCustomerCommand
                {
                    FirstName = "Mary",
                    LastName  = "Smith",
                },

                new CreateCustomerCommand
                {
                    FirstName = "John",
                    LastName  = "McDonald",
                },

                new CreateCustomerCommand
                {
                    FirstName = "Rob",
                    LastName  = "McDonald",
                },
            };

            var createResponses = await CreateCustomersAsync(createRequests);

            // Act

            var id          = Guid.NewGuid();
            var findRequest = new ViewCustomerQuery {
                Id = id
            };
            var findHttpResponse = await Fixture.Api.Customers.ViewCustomerAsync(findRequest, header);

            // Assert

            findHttpResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
コード例 #5
0
        public async Task CreateCustomer_ValidRequest_ReturnsResponse()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequest = new CreateCustomerCommand
            {
                FirstName = "First name 1",
                LastName  = "Last name 1",
            };

            // Act

            var createHttpResponse = await Fixture.Api.Customers.CreateCustomerAsync(createRequest, header);

            // Assert

            createHttpResponse.StatusCode.Should().Be(HttpStatusCode.Created);

            var createResponse = createHttpResponse.Data;

            createResponse.Id.Should().NotBeEmpty();
            createResponse.Should().BeEquivalentTo(createRequest);

            var id          = createResponse.Id;
            var findRequest = new ViewCustomerQuery {
                Id = id
            };
            var findHttpResponse = await Fixture.Api.Customers.ViewCustomerAsync(findRequest, header);

            var findResponse = findHttpResponse.Data;

            findHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK);
            findResponse.Should().BeEquivalentTo(createResponse);
        }
コード例 #6
0
        public Task <ObjectClientResponse <ViewCustomerQueryResponse> > ViewCustomerAsync(ViewCustomerQuery request, HeaderData header)
        {
            var id = request.Id;

            return(Client.GetByIdAsync <Guid, ViewCustomerQueryResponse>(id, GetHeaders(header)));
        }