public async Task Test_SiteManager_CreateArticle_TestLogging()
        {
            // Arange
            var loggerMock                 = new LoggerMock <SiteManager>();
            var authorAccessMock           = new AuthorAccessMock(new List <Author> {
            });
            var          articleAccessMock = new ArticleAccessMock();
            ISiteManager sut               = new SiteManager(articleAccessMock.Object, authorAccessMock.Object, loggerMock.Object);

            // Act
            var request = new Kaylumah.AdventuresWithMock.Manager.Site.Interface.CreateArticleRequest
            {
                Title   = "Pretty Title",
                Content = "# AdventuresWithMock ..."
            };
            await sut.CreateArticle(request);

            // Assert
            authorAccessMock.Verify(x => x.FilterAuthors(It.IsAny <FilterAuthorCriteria>()), Times.Once);
            articleAccessMock.Verify(x => x.CreateArticles(It.IsAny <CreateArticlesRequest>()), Times.Never);
            loggerMock.VerifyLogging("No author found for 666", Microsoft.Extensions.Logging.LogLevel.Warning);
        }
        public async Task Test_SiteManager_CreateArticle_RepoMocksDemo1()
        {
            // Arange
            var loggerMock       = new LoggerMock <SiteManager>();
            var authorAccessMock = new AuthorAccessMock(new List <Author> {
                new Author {
                    Id = 666, DisplayName = "Max", Verfied = false
                }
            });
            var          articleAccessMock = new ArticleAccessMock();
            ISiteManager sut = new SiteManager(articleAccessMock.Object, authorAccessMock.Object, loggerMock.Object);

            // Act
            var request = new Kaylumah.AdventuresWithMock.Manager.Site.Interface.CreateArticleRequest
            {
                Title   = "Pretty Title",
                Content = "# AdventuresWithMock ..."
            };
            await sut.CreateArticle(request);

            // Assert
            authorAccessMock.Verify(x => x.FilterAuthors(It.IsAny <FilterAuthorCriteria>()), Times.Once);
            articleAccessMock.Verify(x => x.CreateArticles(It.IsAny <CreateArticlesRequest>()), Times.Never);
        }