public async Task ReadAsync_TwoExtractors_Post() { var extractor1 = Substitute.For <IPostExtractor>(); extractor1.ExtractAsync("testUrl").Returns((Post)null); var extractor2 = Substitute.For <IPostExtractor>(); extractor2.ExtractAsync("testUrl").Returns(new Post { Title = "Test title", Content = "Test content", Category = PostCategory.Game }); var extractors = new IPostExtractor[] { extractor1, extractor2 }; var target = new PostReader(extractors); var actual = await target.ReadAsync("testUrl"); Assert.IsNotNull(actual); Assert.AreEqual("Test title", actual.Title); Assert.AreEqual("Test content", actual.Content); Assert.AreEqual(PostCategory.Game, actual.Category); }
public PostService(string jekyllRootFolder) { _jekyllRootFolder = jekyllRootFolder; // Leitor. var extractors = new IPostExtractor[] { new WordPressPostExtractor(), new DoPresskitVariant1PostExtractor(), new DoPresskitVariant2PostExtractor(), new GenericPostExtractor() }; _reader = new PostReader(extractors); // Escritor. var resourceClient = new WebResourceClient(); var fs = new FileSystem(); _writer = new PostWriter(jekyllRootFolder, resourceClient, fs); }