Ejemplo n.º 1
0
        public async Task <OperationResult <ProductDto> > CreateAsync(CreateProductInput input)
        {
            var validationResult = await _validator.ValidateCreateProduct(input);

            if (validationResult.IsSuccess)
            {
                Product product = input.ConvertToEntity();

                product = await _repository.CreateAsync(product);

                Task overviewTask = _overviewRepository.CreateAsync(new()
                {
                    ProductId   = product.Id,
                    Description = input.Description
                });

                Task badgeTask = _badgeRepository.CreateAsync(new()
                {
                    ProductId = product.Id,
                    Badges    = Enumerable.Empty <ProductBadgeName>()
                });

                Task.WaitAll(overviewTask, badgeTask);

                return(OperationResult <ProductDto> .Success(product.ConvertToDto()));
            }
            else
            {
                return(OperationResult <ProductDto> .Fail(validationResult));
            }
        }
        public void ConvertToEntity_InputNotNull_ReturnPercentageOffIsZero()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.Equal(0, product.PercentageOff);
        }
        public void ConvertToEntity_InputNotNull_ReturnIsActiveFalse()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.False(product.IsActive);
        }
        public void ConvertToEntity_InputNotNull_ReturnThumbnailNull()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.Null(product.Thumbnail);
        }
        public void ConvertToEntity_InputNotNull_ReturnSameSubCategory()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.Equal(product.SubCategory, input.SubCategory);
        }
        public void ConvertToEntity_InputNotNull_ReturnSamePrice()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.Equal(product.Price, input.Price);
        }
        public void ConvertToEntity_InputNotNull_ReturnStockIsZero()
        {
            CreateProductInput input = MockCreateProductInput();

            Product product = input.ConvertToEntity();

            Assert.Equal(0, product.Stock);
        }