public async Task additem_should_log_information_about_the_entity(string json)
        {
            var item = JsonConvert.DeserializeObject <AddItemCommand>(json);

            var sut = new AddItemHandler(new ItemRepository(_catalogDataContextFactory.ContextInstance),
                                         new Mapper(new MapperConfiguration(cfg => cfg.AddProfile <CatalogProfile>())), _logger.Object);

            await sut.Handle(item, CancellationToken.None);

            _logger
            .Verify(x => x.Log(It.IsAny <LogLevel>(), It.IsAny <Exception>(), It.IsAny <string>()), Times.AtMost(2));
        }
        public async Task additem_should_add_right_entity(string json)
        {
            var item = JsonConvert.DeserializeObject <AddItemCommand>(json);

            var sut = new AddItemHandler(new ItemRepository(_catalogDataContextFactory.ContextInstance),
                                         new Mapper(new MapperConfiguration(cfg => cfg.AddProfile <CatalogProfile>())));

            var result =
                await sut.Handle(item, CancellationToken.None);

            result.Name.ShouldBe(item.Name);
            result.Description.ShouldBe(item.Description);
            result.GenreId.ShouldBe(item.GenreId);
            result.ArtistId.ShouldBe(item.ArtistId);
            result.Price.Amount.ShouldBe(item.Price.Amount);
            result.Price.Currency.ShouldBe(item.Price.Currency);
        }