Example #1
0
        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);
        }
Example #2
0
        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);
        }