예제 #1
0
        public async Task Invalid_Command_ShouldThrow_ValidationException()
        {
            var command = new CreateCatalogProductCommand
            {
                CatalogId         = (CatalogId)Guid.Empty,
                CatalogCategoryId = (CatalogCategoryId)Guid.Empty,
                ProductId         = (ProductId)Guid.Empty,
                DisplayName       = string.Empty
            };

            await Should.ThrowAsync <ValidationException>(async() =>
                                                          await this._requestHandler.Handle(command, this.CancellationToken));
        }
예제 #2
0
        public async Task Create_CatalogProduct_Successfully()
        {
            var command = new CreateCatalogProductCommand
            {
                CatalogId         = this._catalog.CatalogId,
                CatalogCategoryId = this._catalogCategory.CatalogCategoryId,
                ProductId         = this._product.ProductId,
                DisplayName       = this._product.Name
            };

            await this._requestHandler.Handle(command, this.CancellationToken);

            this._mockDbContext.Verify(x => x.Update(this._catalog), Times.Once);
        }
예제 #3
0
        public void Empty_Command_ShouldBe_Invalid()
        {
            var command = new CreateCatalogProductCommand
            {
                CatalogId         = CatalogId.Empty,
                CatalogCategoryId = CatalogCategoryId.Empty,
                ProductId         = ProductId.Empty,
                DisplayName       = string.Empty
            };

            var result = this._validator.TestValidate(command);

            result.ShouldHaveValidationErrorFor(x => x.CatalogId);
            result.ShouldHaveValidationErrorFor(x => x.ProductId);
            result.ShouldHaveValidationErrorFor(x => x.DisplayName);
        }
예제 #4
0
        public void Product_NotFound_ShouldBe_Invalid()
        {
            var command = new CreateCatalogProductCommand
            {
                CatalogId         = this._catalog.CatalogId,
                CatalogCategoryId = this._catalogCategory.CatalogCategoryId,
                ProductId         = IdentityFactory.Create <ProductId>(),
                DisplayName       = this._product.Name
            };

            var result = this._validator.TestValidate(command);

            result.ShouldHaveValidationErrorFor(x => x.ProductId);
            result.ShouldNotHaveValidationErrorFor(x => x.CatalogId);
            result.ShouldNotHaveValidationErrorFor(x => x.CatalogCategoryId);
            result.ShouldNotHaveValidationErrorFor(x => x.DisplayName);
        }
예제 #5
0
        public void Catalog_NotFound_ShouldBe_Invalid()
        {
            var command = new CreateCatalogProductCommand
            {
                CatalogId         = CatalogId.New,
                CatalogCategoryId = CatalogCategoryId.New,
                ProductId         = this._product.Id,
                DisplayName       = this._product.Name
            };

            var result = this._validator.TestValidate(command);

            result.ShouldHaveValidationErrorFor(x => x.CatalogId);
            result.ShouldNotHaveValidationErrorFor(x => x.CatalogCategoryId);
            result.ShouldNotHaveValidationErrorFor(x => x.ProductId);
            result.ShouldNotHaveValidationErrorFor(x => x.DisplayName);
        }
예제 #6
0
        public void Duplicate_Product_ShouldBe_Invalid()
        {
            var catalogProduct =
                this._catalogCategory.CreateCatalogProduct(this._product.ProductId, this._product.Name);

            var command = new CreateCatalogProductCommand
            {
                CatalogId         = this._catalog.CatalogId,
                CatalogCategoryId = this._catalogCategory.CatalogCategoryId,
                ProductId         = this._product.ProductId,
                DisplayName       = this._product.Name
            };

            var result = this._validator.TestValidate(command);

            result.ShouldHaveValidationErrorFor(x => x.ProductId);
            result.ShouldNotHaveValidationErrorFor(x => x.CatalogId);
            result.ShouldNotHaveValidationErrorFor(x => x.CatalogCategoryId);
            result.ShouldNotHaveValidationErrorFor(x => x.DisplayName);
        }