public void RequestFilesFromThePagesFolder() { var fileSystemBuilder = new FileSystemBuilder() .AddRandomContentItemFiles() .AddRandomCategories(); String rootPath = $"c:\\{string.Empty.GetRandom()}"; String expectedPath = System.IO.Path.Combine(rootPath, _dataFolder); var sourceConnection = $"Provider=this;{_connectionStringFilepathKey}={rootPath}"; var directoryProvider = new Mock <IDirectory>(); directoryProvider.Setup(f => f.EnumerateFiles(expectedPath)) .Returns(fileSystemBuilder.ContentItemFileNames) .Verifiable(); var container = new ServiceCollection(); container.AddSingleton <IFile>(fileSystemBuilder.Build()); container.AddSingleton <IDirectory>(directoryProvider.Object); var target = new Repository(container.BuildServiceProvider(), sourceConnection); var pages = target.GetAllPages(); directoryProvider.VerifyAll(); }
private static void ExecutePropertyTest <T>(String fileContents, T expected, Func <ContentItem, T> fieldValueDelegate, Func <IContentRepository, IEnumerable <ContentItem> > methodDelegate, IEnumerable <Category> categories) { var fileSystemBuilder = new FileSystemBuilder() .AddContentItemFile($"{string.Empty.GetRandom()}.md", fileContents); if (categories.IsNotNull() && categories.Any()) { fileSystemBuilder.AddCategories(categories); } else { fileSystemBuilder.AddRandomCategories(); } var directoryProvider = new Mock <IDirectory>(); directoryProvider.Setup(f => f.EnumerateFiles(It.IsAny <string>())) .Returns(fileSystemBuilder.ContentItemFileNames); var target = (null as IContentRepository).Create(fileSystemBuilder.Build(), directoryProvider.Object, "c:\\"); var contentItems = methodDelegate.Invoke(target); var actual = contentItems.ToArray()[0]; Assert.Equal(expected, fieldValueDelegate(actual)); }
public void ThrowAnInvalidOperationExceptionIfAnyPostHasAnInvalidFormat() { var fileSystemBuilder = new FileSystemBuilder() .AddContentItemFile($"{string.Empty.GetRandom()}.md", "Not a valid post") .AddRandomCategories(); var directoryProvider = new Mock <IDirectory>(); directoryProvider.Setup(f => f.EnumerateFiles(It.IsAny <string>())) .Returns(fileSystemBuilder.ContentItemFileNames); var target = (null as IContentRepository).Create(fileSystemBuilder.Build(), directoryProvider.Object, "c:\\"); Assert.Throws <InvalidOperationException>(() => _ = target.GetAllPosts()); }
public void ReturnAllPostsIfAllAreValid() { int expected = 20.GetRandom(5); var fileSystemBuilder = new FileSystemBuilder() .AddRandomContentItemFiles(expected) .AddRandomCategories(); var directoryProvider = new Mock <IDirectory>(); directoryProvider.Setup(f => f.EnumerateFiles(It.IsAny <string>())) .Returns(fileSystemBuilder.ContentItemFileNames); var target = (null as IContentRepository).Create(fileSystemBuilder.Build(), directoryProvider.Object, "c:\\"); var posts = target.GetAllPosts(); Assert.Equal(expected, posts.Count()); }
public void IgnoreFilesWithoutMDExtension() { var fileSystemBuilder = new FileSystemBuilder() .AddRandomContentItemFiles(2) .AddContentItemFileWithRandomContent(string.Empty.GetRandom()) .AddRandomContentItemFiles(1) .AddContentItemFileWithRandomContent($"{string.Empty.GetRandom()}.ppt") .AddRandomContentItemFiles(1) .AddContentItemFileWithRandomContent($"{string.Empty.GetRandom()}.txt") .AddRandomContentItemFiles(3) .AddContentItemFileWithRandomContent($"{string.Empty.GetRandom()}.com") .AddRandomContentItemFiles(1) .AddRandomCategories(); var directoryProvider = new Mock <IDirectory>(); directoryProvider.Setup(f => f.EnumerateFiles(It.IsAny <string>())) .Returns(fileSystemBuilder.ContentItemFileNames); var target = (null as IContentRepository).Create(fileSystemBuilder.Build(), directoryProvider.Object, "c:\\"); var pages = target.GetAllPages(); Assert.Equal(8, pages.Count()); }