Ejemplo n.º 1
0
        public async Task BrowseProducts_Valid_OK()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createProductResponses = new List <CreateProductCommandResponse>();

            for (int i = 1; i <= 30; i++)
            {
                var createProductRequest = new CreateProductCommand
                {
                    Code        = $"P{i}",
                    Description = $"Product {i}",
                    UnitPrice   = 100 + i,
                };

                var createProductHttpResponse = await Fixture.Api.Products.CreateProductAsync(createProductRequest, header);

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

                var createProductResponse = createProductHttpResponse.Data;

                createProductResponses.Add(createProductResponse);
            }

            var browseRequest = new BrowseProductsQuery
            {
                Page = 3,
                Size = 5,
            };

            // Act

            var browseHttpResponse = await Fixture.Api.Products.BrowseProductsAsync(browseRequest, header);

            // Assert

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

            // TODO: VC: Align with Hangfire synchronization

            /*
             * var browseResponse = browseHttpResponse.Data;
             *
             * // TODO: VC: Check
             * // browseResponse.TotalRecords.Should().Be(browseRequest.Size);
             *
             * var expected = createProductResponses.Skip(10).Take(5).ToList();
             *
             * for (int i = 0; i < expected.Count; i++)
             * {
             *  var expectedRecord = expected[i];
             *  var actualRecord = browseResponse.Records[i];
             *
             *  actualRecord.Should().BeEquivalentTo(expectedRecord);
             * }
             */
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <BrowseProductsQueryResponse> > BrowseProductsAsync([FromQuery] int?page = 1, [FromQuery] int?size = 10)
        {
            var request = new BrowseProductsQuery
            {
                Page = page.Value,
                Size = size.Value,
            };

            var response = await _messageBus.SendAsync(request);

            return(Ok(response));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Get([FromQuery] BrowseProductsQuery query)
        {
            var products = await _dispatcher.QueryAsync(query);

            return(Collection(products));
        }
Ejemplo n.º 4
0
 public Task <ObjectClientResponse <BrowseProductsQueryResponse> > BrowseProductsAsync(BrowseProductsQuery request, HeaderData header)
 {
     return(Client.GetAsync <BrowseProductsQuery, BrowseProductsQueryResponse>(request, GetHeaders(header)));
 }