Exemple #1
0
        public async Task <ActionResult <ViewProductQueryResponse> > ViewProductAsync(Guid id)
        {
            var request = new ViewProductQuery
            {
                Id = id,
            };

            var response = await _messageBus.SendAsync(request);

            return(Ok(response));
        }
Exemple #2
0
        public async Task CreateProduct_ValidRequest_ReturnsResponse()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequest = new CreateProductCommand
            {
                Code        = "My code 1",
                Description = "My name 1",
                UnitPrice   = 100.56m,
            };

            // Act

            var createHttpResponse = await Fixture.Api.Products.CreateProductAsync(createRequest, header);

            // Assert

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

            var createResponse = createHttpResponse.Data;

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

            createResponse.Should().BeEquivalentTo(createRequest);

            var findRequest = new ViewProductQuery {
                Id = createResponse.Id
            };

            var findHttpResponse = await Fixture.Api.Products.ViewProductAsync(findRequest, header);

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

            var findResponse = findHttpResponse.Data;

            findResponse.Should().BeEquivalentTo(createResponse);
        }
Exemple #3
0
        public async Task RelistProduct_ValidRequest_ReturnsResponse()
        {
            // Arrange

            var header = await GetDefaultHeaderDataAsync();

            var createRequests = new List <CreateProductCommand>
            {
                new CreateProductCommand
                {
                    Code        = "APP",
                    Description = "Apple",
                    UnitPrice   = 10.50m,
                },

                new CreateProductCommand
                {
                    Code        = "BAN",
                    Description = "Banana",
                    UnitPrice   = 30.99m,
                },

                new CreateProductCommand
                {
                    Code        = "ONG",
                    Description = "Orange",
                    UnitPrice   = 35.99m,
                },

                new CreateProductCommand
                {
                    Code        = "STR",
                    Description = "Strawberry",
                    UnitPrice   = 40.00m,
                },
            };

            var createHttpResponses = await CreateProductsAsync(createRequests);

            var someCreateHttpResponse = createHttpResponses[2];
            var someCreateResponse     = someCreateHttpResponse.Data;
            var id = someCreateResponse.Id;

            var unlistRequest = new UnlistProductCommand {
                Id = id
            };
            var unlistHttpResponse = await Fixture.Api.Products.UnlistProductAsync(unlistRequest, header);

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

            var expectedUnlistResponse = new UnlistProductCommandResponse
            {
                Id       = id,
                IsListed = false,
            };

            var unlistResponse = unlistHttpResponse.Data;

            unlistResponse.Should().BeEquivalentTo(expectedUnlistResponse);

            // Act

            var relistRequest = new RelistProductCommand {
                Id = id
            };
            var relistHttpResponse = await Fixture.Api.Products.RelistProductAsync(relistRequest, header);

            // Assert

            var expectedRelistResponse = new RelistProductCommandResponse
            {
                Id       = id,
                IsListed = true,
            };

            var relistResponse = relistHttpResponse.Data;

            relistResponse.Should().BeEquivalentTo(expectedRelistResponse);

            var findRequest = new ViewProductQuery {
                Id = id
            };
            var findHttpResponse = await Fixture.Api.Products.ViewProductAsync(findRequest, header);

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

            var findResponse = findHttpResponse.Data;

            findResponse.Should().BeEquivalentTo(someCreateResponse);
        }
Exemple #4
0
        public Task <ObjectClientResponse <ViewProductQueryResponse> > ViewProductAsync(ViewProductQuery request, HeaderData header)
        {
            var id = request.Id;

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