public void Remove_LogsMessage()
        {
            var logger      = new Mock <ILogger>();
            var auditedRepo = new AuditedProductRepository(new Mock <IProductRepository>().Object, logger.Object);

            auditedRepo.Remove(new Product {
                Id = 1, Name = "Product A", Price = 5.99m
            });

            logger.Verify(l => l.Info(It.IsAny <string>()));
        }
        public void Remove_RemovesFromRepository()
        {
            var prodRepo    = new Mock <IProductRepository>();
            var auditedRepo = new AuditedProductRepository(prodRepo.Object, new Mock <ILogger>().Object);

            auditedRepo.Remove(new Product {
                Id = 1, Name = "Product A", Price = 5.99m
            });

            prodRepo.Verify(repo => repo.Remove(It.IsAny <Product>()));
        }