Ejemplo n.º 1
0
        public async Task AddBookCommand_should_not_be_valid_if_required_fields_are_empty(string title, string author)
        {
            // Arrange
            var file = new byte[] { 1, 2, 3 };

            await using var ms = new MemoryStream(file);
            var contentType = "image/jpeg";

            var newBook = new NewBookModel
            {
                Author      = author,
                Title       = title,
                Description = "Correct",
                Price       = 1,
                Image       = Helpers.CreateTestFormFile(ms, contentType)
            };

            var validator = new AddBookCommandValidator();

            // Act
            var result = await validator.ValidateAsync(new AddBookCommand(newBook));

            // Assert
            Assert.False(result.IsValid);
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Title)));
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Author)));
        }
Ejemplo n.º 2
0
        public async Task AddBookCommand_should_not_be_valid_if_fields_are_too_big()
        {
            // Arrange
            var file = new byte[] { 1, 2, 3 };

            await using var ms = new MemoryStream(file);
            var contentType = "image/pdf";

            var newBook = new NewBookModel
            {
                Author      = new string('a', 129),
                Title       = new string('a', 129),
                Description = new string('a', 2001),
                Price       = 1,
                Image       = Helpers.CreateTestFormFile(ms, contentType)
            };

            var validator = new AddBookCommandValidator();

            // Act
            var result = await validator.ValidateAsync(new AddBookCommand(newBook));

            // Assert
            Assert.False(result.IsValid);
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Title)));
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Author)));
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Description)));
        }
Ejemplo n.º 3
0
        public async Task AddBookCommand_should_not_be_valid_if_image_has_wrong_mime_type()
        {
            // Arrange
            var file = new byte[] { 1, 2, 3 };

            await using var ms = new MemoryStream(file);
            var contentType = "image/pdf";

            var newBook = new NewBookModel
            {
                Author      = "Correct",
                Title       = "Correct",
                Description = "Correct",
                Price       = 1,
                Image       = Helpers.CreateTestFormFile(ms, contentType)
            };

            var validator = new AddBookCommandValidator();

            // Act
            var result = await validator.ValidateAsync(new AddBookCommand(newBook));

            // Assert
            Assert.False(result.IsValid);
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Image.ContentType)));
        }
Ejemplo n.º 4
0
        public SeriesValidatorTests()
        {
            _listQueryValidator    = new ListQueryValidator();
            _detailsQueryValidator = new DetailsQueryValidator();

            _addCommandValidator             = new AddCommandValidator();
            _updateCommandValidator          = new UpdateCommandValidator();
            _updatePartiallyCommandValidator = new UpdatePartiallyCommandValidator();

            _deleteOneCommandValidator  = new DeleteOneCommandValidator();
            _deleteManyCommandValidator = new DeleteManyCommandValidator();

            _addBookCommandValidator    = new AddBookCommandValidator();
            _deleteBookCommandValidator = new DeleteBookCommandValidator();
        }
Ejemplo n.º 5
0
        public async Task AddBookCommand_should_not_be_valid_if_image_is_empty()
        {
            // Arrange
            var newBook = new NewBookModel
            {
                Author      = "Correct",
                Title       = "Correct",
                Description = "Correct",
                Price       = 1,
                Image       = null
            };

            var validator = new AddBookCommandValidator();

            // Act
            var result = await validator.ValidateAsync(new AddBookCommand(newBook));

            // Assert
            Assert.False(result.IsValid);
            Assert.Contains(result.Errors, failure => failure.PropertyName.EndsWith(nameof(newBook.Image)));
        }