public async Task Create_New_Book()
        {
            using (var context = GetContextWithData())
            {
                var handler    = new CreateBookCommandHandler(context);
                var categoryId = Guid.NewGuid();

                await AddCategory(context, categoryId, "nothing");

                var command = new CreateBookCommand
                {
                    Title      = "Title",
                    Categories = new List <CreateBookModelCategory> {
                        new CreateBookModelCategory {
                            Id = categoryId
                        }
                    }
                };

                await handler.Handle(command, CancellationToken.None);

                var book = await context.Books.SingleOrDefaultAsync(c => c.Title == command.Title);

                Assert.Equal(command.Title, book.Title);
                Assert.Equal(command.Categories.ToList().Count, book.BookCategories.ToList().Count);
                Assert.Equal(command.Categories.FirstOrDefault()?.Id, book.BookCategories.FirstOrDefault()?.CategoryId);
            }
        }
Example #2
0
        public CreateBookCommandHandlerTests()
        {
            _publication = new PublicationCommand {
                Edition = 1, Year = DateTime.Now.Year
            };
            _bookRepository = new Mock <IBookRepository>();
            var publicationValidator = new PublicationCommandValidator();

            var createBookCommandValidator =
                new CreateBookCommandValidator(_bookRepository.Object, publicationValidator);

            _eventPublisher = new Mock <IEventPublisher <BookEvent> >();

            _createBookCommandHandler =
                new CreateBookCommandHandler(createBookCommandValidator, _bookRepository.Object, _eventPublisher.Object);
        }