Exemple #1
0
        public async Task <ActionResult <FilterCustomersQueryResponse> > FilterCustomersAsync(int limit, string nameSearch)
        {
            var request = new FilterCustomersQuery
            {
                Limit      = limit,
                NameSearch = nameSearch,
            };

            var response = await _messageBus.SendAsync(request);

            return(Ok(response));
        }
Exemple #2
0
        public async Task ListCustomers_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",
                },

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

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

                new CreateCustomerCommand
                {
                    FirstName = "Mark",
                    LastName  = "McPhil",
                },

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

            var createHttpResponses = await CreateCustomersAsync(createRequests);

            // Act

            var listRequest = new FilterCustomersQuery
            {
                NameSearch = "ark",
                Limit      = 10,
            };

            var listHttpResponse = await Fixture.Api.Customers.FilterCustomersAsync(listRequest, header);

            // Assert

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

            var expectedRecords = new List <CreateCustomerCommandResponse>
            {
                createHttpResponses[3].Data,
                createHttpResponses[5].Data,
            }
            .Select(e => new ListCustomersRecordResponse
            {
                Id   = e.Id,
                Name = $"{e.FirstName} {e.LastName}",
            });

            var listResponse = listHttpResponse.Data;

            // TODO: VC: FIX

            // listResponse.TotalRecords.Should().Be(createRequests.Count);

            // listResponse.Records.Should().BeEquivalentTo(expectedRecords);
        }
Exemple #3
0
 public Task <ObjectClientResponse <FilterCustomersQueryResponse> > FilterCustomersAsync(FilterCustomersQuery request, HeaderData header)
 {
     return(Client.GetAsync <FilterCustomersQuery, FilterCustomersQueryResponse>("filter", request, GetHeaders(header)));
 }