public void itShouldRevertNameOnUndoButOnlyForThoseThatWereRenamed()
        {
            string inputFile1 = @"C:\someDir\someFile1.txt";
            string inputFile2 = @"C:\someDir\someFile2.txt";
            string inputFile3 = @"C:\someDir\someFile3.txt";

            string pattern        = "preText-[n]-postText.txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile1, inputFile2, inputFile3);
            var fileRenameCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile1, inputFile2, inputFile3);
            var outputFile1       = @"C:\someDir\preText-someFile1-postText.txt";
            var outputFile2       = @"C:\someDir\preText-someFile2-postText.txt";
            var outputFile3       = @"C:\someDir\preText-someFile3-postText.txt";

            fakeFileSystem.AddFiles(outputFile3);

            fileRenameCommand.Do();

            Assert.IsFalse(fileRenameCommand.DidCommandSucceed);

            fileRenameCommand.Undo();

            Assert.IsFalse(fakeFileSystem.FileExists(outputFile1));
            Assert.IsFalse(fakeFileSystem.FileExists(outputFile2));
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile3));
        }
        public void itShouldRenameUsingDateTimeToken()
        {
            string inputFile1 = @"C:\someDir\someFile1.txt";
            string inputFile2 = @"C:\someDir\someFile2.txt";

            string pattern        = "preText-[n]-[d:MMdd]-postText.txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile1, inputFile2);
            var renameFileCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile1, inputFile2);

            renameFileCommand.Do();

            var computedReplacement = renameFileCommand.DateTimeReference.ToString("MMdd");
            var targetFile1         = $@"C:\someDir\preText-someFile1-{computedReplacement}-postText.txt";
            var targetFile2         = $@"C:\someDir\preText-someFile2-{computedReplacement}-postText.txt";

            Assert.IsTrue(renameFileCommand.DidCommandSucceed);
            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile1], targetFile1);
            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile2], targetFile2);

            Assert.IsTrue(fakeFileSystem.FileExists(targetFile1));
            Assert.IsTrue(fakeFileSystem.FileExists(targetFile2));
        }
        public void itShouldRenameUsingFilenameToken()
        {
            string inputFile1 = @"C:\someDir\someFile1.txt";
            string inputFile2 = @"C:\someDir\someFile2.txt";

            string pattern        = "preText-[n]-postText.txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile1, inputFile2);
            var renameFileCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile1, inputFile2);

            renameFileCommand.Do();

            var outputFile1 = @"C:\someDir\preText-someFile1-postText.txt";
            var outputFile2 = @"C:\someDir\preText-someFile2-postText.txt";

            Assert.IsTrue(renameFileCommand.DidCommandSucceed);

            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile1], outputFile1);
            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile2], outputFile2);

            Assert.IsTrue(fakeFileSystem.FileExists(outputFile1));
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile2));
        }
Пример #4
0
        public void UpdatePost_TitleIsUpdated_UpdateSlug()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            Post newPost = new Post
            {
                Slug     = "New-Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now
            };

            testDataStore.SavePost(oldPost);
            testDataStore.UpdatePost(newPost, oldPost);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{newPost.PubDate.ToFileTime()}_{newPost.Id}.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\{newPost.PubDate.ToFileTime()}_{newPost.Id}.xml");

            Assert.False(testFileSystem.FileExists($"BlogFiles\\Posts\\{oldPost.PubDate.ToFileTime()}_{oldPost.Id}.xml"));
        }
Пример #5
0
        public void itShouldDeleteOnlyCopiedFilesOnUndo()
        {
            var fileSysCommand = new MockFileSystemCommand();
            var sourceDir      = @"c:\sourceDir";
            var sourceDirFile1 = @"c:\sourceDir\file1.txt";
            var sourceDirFile2 = @"c:\sourceDir\file2.txt";

            var targetDir              = @"c:\targetDir";
            var targetDirFile1         = @"c:\targetDir\file2.txt";
            var dirCopyContentsCommand = new DirectoryCopyContentsCommand(sourceDir, targetDir, fileSysCommand);
            var fakeFileSystem         = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddDirectory(sourceDir);
            fakeFileSystem.AddFiles(sourceDirFile1);
            fakeFileSystem.AddFiles(sourceDirFile2);

            fakeFileSystem.AddDirectory(targetDir);
            fakeFileSystem.AddFiles(targetDirFile1);

            dirCopyContentsCommand.Do();

            Assert.IsFalse(dirCopyContentsCommand.DidCommandSucceed);
            Assert.IsTrue(fakeFileSystem.FileExists(targetDirFile1));

            dirCopyContentsCommand.Undo();

            Assert.IsFalse(fakeFileSystem.FileExists(@"c:\targetDir\file1.txt"));
            Assert.IsTrue(fakeFileSystem.FileExists(targetDirFile1));
        }
Пример #6
0
        public void Filesys_Add()
        {
            var fs = new FakeFileSystem()
                     .Dir("foo")
                     .File("foo.py", @"print('Howdy')" + "\r\n")
                     .File("bar.py", @"def foo():\r\n    pass\r\n")
                     .End()
                     .Dir("end")
                     .End();

            Assert.True(fs.FileExists("\\foo\\foo.py"));
            Assert.False(fs.FileExists("\\foo\\foo1.py"));
            Assert.False(fs.FileExists("\\bar\\foo1.py"));
        }
Пример #7
0
        public void itShouldRestoreBackupOnUndo()
        {
            var fileSysCommand = new MockFileSystemCommand();
            var fakeFileSystem = new FakeFileSystem(fileSysCommand);
            var fileToDelete   = @"c:\dummysourcefile.txt";

            fakeFileSystem.AddFiles(fileToDelete);
            var fileDeleteCommand = new FileDeleteCommand(@"c:\dummybackupdir", fileSysCommand, fileToDelete);

            fileDeleteCommand.Do();
            Assert.IsFalse(fakeFileSystem.FileExists(fileToDelete));

            fileDeleteCommand.Undo();
            Assert.IsTrue(fakeFileSystem.FileExists(fileToDelete));
        }
Пример #8
0
        public void itShouldDeleteTargetZipOnUndoIfCommandSucceeded()
        {
            var zipExe        = "dummy7zip.exe";
            var targetZipFile = @"dummytargetZip.7z";
            var source1       = "file1.txt";
            var source2       = "file2.txt";
            var zip7FileCompressionCommand = new Zip7CompressCommand(zipExe, targetZipFile, source1, source2);

            zip7FileCompressionCommand.setFileCompressionStrategy(new MockFileCompressionStrategy(0));
            var mockFileSysCommand = new MockFileSystemCommand();

            zip7FileCompressionCommand.setFileSystemCommandsStrategy(mockFileSysCommand);
            var fakeFileSystem = new FakeFileSystem(mockFileSysCommand);

            fakeFileSystem.AddFiles(source1);
            fakeFileSystem.AddFiles(source2);
            fakeFileSystem.AddFiles(zipExe);

            zip7FileCompressionCommand.Do();
            Assert.IsTrue(zip7FileCompressionCommand.DidCommandSucceed);

            fakeFileSystem.AddFiles(targetZipFile);

            zip7FileCompressionCommand.Undo();
            Assert.IsFalse(fakeFileSystem.FileExists(targetZipFile));
        }
Пример #9
0
        public void UpdatePost_TitleIsUpdated_UpdateSlug()
        {
            IFileSystem      testFileSystem   = new FakeFileSystem();
            BlogDataStore    testDataStore    = new BlogDataStore(new FakeFileSystem());
            SlugGenerator    slugGenerator    = new SlugGenerator(testDataStore);
            ExcerptGenerator excerptGenerator = new ExcerptGenerator();

            Post post = new Post()
            {
                Slug     = "Title",
                IsPublic = true,
                PubDate  = DateTimeOffset.Now,
            };

            testDataStore.SavePost(post);

            EditedPostModel editedPost = new EditedPostModel()
            {
                Title = "Edited Title",
            };

            EditModel model = new EditModel(testDataStore, slugGenerator, excerptGenerator);

            model.OnPostPublish(post.Id, true);
            testDataStore.UpdatePost(post, post.IsPublic);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{post.PubDate.ToFileTime()}_{post.Id}.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Posts\\{post.PubDate.ToFileTime()}_{post.Id}.xml");

            Assert.Equal("Edited-Title", post.Slug);
        }
Пример #10
0
        public void SaveComment_SaveSimpleComment()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTime.Now,
                LastModified = DateTime.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };

            Comment testComment = new Comment
            {
                AuthorName  = "Test name",
                AuthorEmail = "Test email",
                Body        = "Test body",
                PubDate     = DateTime.Now,
                IsPublic    = true
            };

            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists("BlogFiles\\Test-slug.xml"));
            StringReader xmlFileContents = new StringReader(testFileSystem.ReadFileText("BlogFiles\\Test-slug.xml"));
            XDocument    doc             = XDocument.Load(xmlFileContents);

            Assert.True(doc.Root.Elements("Comments").Any());
        }
Пример #11
0
        public void UpdatePost_ChangePost_UpdatesXMLFile()
        {
            IFileSystem   fakeFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(fakeFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                Title    = "Old Title",
                Body     = "Old body",
                IsPublic = true,
                Excerpt  = "Old excerpt"
            };

            Post newPost = new Post
            {
                Slug     = "New-Title",
                Title    = "New Title",
                Body     = "New body",
                IsPublic = true,
                Excerpt  = "New excerpt"
            };

            testDataStore.SavePost(oldPost);
            testDataStore.UpdatePost(newPost, oldPost);

            Assert.True(fakeFileSystem.FileExists($"BlogFiles\\New-Title.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\New-Title.xml");

            Assert.Equal(result.Slug, "New-Title");
            Assert.Equal(result.Title, "New Title");
            Assert.Equal(result.Body, "New body");
            Assert.True(result.IsPublic);
            Assert.Equal(result.Excerpt, "New excerpt");
        }
Пример #12
0
        public void SaveComment_SaveSimpleComment()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug         = "Test-slug",
                Title        = "Test title",
                Body         = "Test body",
                PubDate      = DateTimeOffset.Now,
                LastModified = DateTimeOffset.Now,
                IsPublic     = true,
                Excerpt      = "Test excerpt"
            };

            Comment testComment = new Comment
            {
                AuthorName = "Test name",
                Body       = "Test body",
                PubDate    = DateTimeOffset.Now,
                IsPublic   = true
            };

            testPost.Comments.Add(testComment);
            testDataStore.SavePost(testPost);

            string filePath = $"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":", "-")}_{testPost.Id}.xml";

            Assert.True(testFileSystem.FileExists(filePath));
            StringReader xmlFileContents = new StringReader(testFileSystem.ReadFileText(filePath));
            XDocument    doc             = XDocument.Load(xmlFileContents);

            Assert.True(doc.Root.Elements("Comments").Any());
        }
Пример #13
0
        public void UpdatePost_ChangePost_DoesNotRemoveComments()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            Post oldPost = new Post
            {
                Slug     = "Old-Title",
                Title    = "Old Title",
                Body     = "Old body",
                IsPublic = true,
                Excerpt  = "Old excerpt"
            };
            Comment comment = new Comment
            {
                AuthorName  = "Test name",
                AuthorEmail = "Test email",
                Body        = "test body",
                PubDate     = DateTime.Now,
                IsPublic    = true
            };
            Post newPost = new Post
            {
                Slug     = "New-Title",
                Title    = "New Title",
                Body     = "New body",
                IsPublic = true,
                Excerpt  = "New excerpt"
            };

            oldPost.Comments.Add(comment);
            testDataStore.SavePost(oldPost);
            newPost.Comments = oldPost.Comments;
            testDataStore.UpdatePost(newPost, oldPost);
            Post           result   = testDataStore.GetPost(newPost.Slug);
            List <Comment> comments = testDataStore.GetAllComments(newPost.Slug);

            Assert.True(testFileSystem.FileExists(@"BlogFiles\New-Title.xml"));
            Assert.False(testFileSystem.FileExists(@"BlogFiles\Old-Title.xml"));
            Assert.NotEmpty(comments);
        }
        public void itMustDeleteDirectoryContentsOnly()
        {
            var fileSysCommand                  = new MockFileSystemCommand();
            var dirToDeleteContents             = @"c:\maindir\subdir";
            var dirDeleteDirContentsOnlyCommand = new DirectoryDeleteContentsOnlyCommandInternal(dirToDeleteContents, @"c:\dummybackupdir", fileSysCommand);
            var fakeFileSystem                  = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddDirectory(dirToDeleteContents);
            var file1 = dirToDeleteContents + @"\dummyfile1.txt";
            var file2 = dirToDeleteContents + @"\dummyfile2.txt";

            fakeFileSystem.AddFiles(file1);
            fakeFileSystem.AddFiles(file2);

            dirDeleteDirContentsOnlyCommand.Do();

            Assert.IsTrue(dirDeleteDirContentsOnlyCommand.DidCommandSucceed);
            Assert.IsTrue(fakeFileSystem.DirectoryExists(dirToDeleteContents));
            Assert.IsFalse(fakeFileSystem.FileExists(file1));
            Assert.IsFalse(fakeFileSystem.FileExists(file2));
        }
Пример #15
0
        public void itShouldAllowMultipleFileCopyPairs()
        {
            var fileSysCommand  = new MockFileSystemCommand();
            var fakeFileSystem  = new FakeFileSystem(fileSysCommand);
            var fileToCopy1     = @"c:\dummysourcefile.txt";
            var targetFileCopy1 = @"c:\somefolder\dummytargetfile.doc";
            var fileToCopy2     = @"c:\dummysourcefile2.txt";
            var targetFileCopy2 = @"c:\somefolder\dummytargetfile2.doc";

            fakeFileSystem.AddFiles(fileToCopy1, fileToCopy2);
            var fileCopyCommand = new FileCopyCommand(@"c:\dummybackupdir", fileSysCommand, fileToCopy1, targetFileCopy1, fileToCopy2, targetFileCopy2);


            Assert.IsTrue(!fakeFileSystem.FileExists(targetFileCopy1));
            Assert.IsTrue(!fakeFileSystem.FileExists(targetFileCopy2));

            fileCopyCommand.Do();

            Assert.IsTrue(fakeFileSystem.FileExists(targetFileCopy1));
            Assert.IsTrue(fakeFileSystem.FileExists(targetFileCopy2));
        }
Пример #16
0
        public void itShouldFailIfSourceFileDoesNotExist()
        {
            var fileSysCommand  = new MockFileSystemCommand();
            var fakeFileSystem  = new FakeFileSystem(fileSysCommand);
            var fileToCopy      = @"c:\dummysourcefile.txt";
            var targetFileCopy  = @"c:\somefolder\dummysourcefile.doc";
            var fileCopyCommand = new FileCopyCommand(@"c:\dummybackupdir", fileSysCommand, fileToCopy, targetFileCopy);

            fileCopyCommand.Do();

            Assert.IsFalse(fileCopyCommand.DidCommandSucceed);
            Assert.IsFalse(fakeFileSystem.FileExists(targetFileCopy));
        }
        public void SaveFiles_CreatesFilesInUploadsFolder()
        {
            FakeFormFile file1 = new FakeFormFile();

            file1.FileName = "file1";
            file1.Length   = 5;
            FakeFormFile file2 = new FakeFormFile();

            file2.FileName = "file2";
            file2.Length   = 5;
            List <IFormFile> files = new List <IFormFile>();

            files.Add(file1);
            files.Add(file2);
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);

            testDataStore.SaveFiles(files);

            Assert.True(testFileSystem.FileExists("wwwroot\\Uploads\\file1"));
            Assert.True(testFileSystem.FileExists("wwwroot\\Uploads\\file2"));
        }
        public void ShouldReturnAddGacReferenceProcessorWhenFileReferenceNotFound()
        {
            var fs = new FakeFileSystem();
            fs.FileExists(false);
            _factory = new AddReferenceProcessorFactory(_solution, _processors, fs);
            var request = new AddReferenceRequest
            {
                Reference = "Nancy.dll"
            };

            var processor = _factory.CreateProcessorFor(request);
            processor.ShouldBeType<AddGacReferenceProcessor>();
        }
        public void itShouldRevertNameOnUndo()
        {
            string inputFile      = @"C:\someDir\someFile.txt";
            string pattern        = "preText-[n]-postText.txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile);
            var fileRenameCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile);

            fileRenameCommand.Do();

            Assert.IsTrue(fileRenameCommand.DidCommandSucceed);
            var outputFile = @"C:\someDir\preText-someFile-postText.txt";

            Assert.AreEqual(fileRenameCommand.RenamedFiles[inputFile], outputFile);
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile));
            Assert.IsFalse(fakeFileSystem.FileExists(inputFile));

            fileRenameCommand.Undo();

            Assert.IsFalse(fakeFileSystem.FileExists(outputFile));
            Assert.IsTrue(fakeFileSystem.FileExists(inputFile));
        }
        public void ShouldReturnAddGacReferenceProcessorWhenFileReferenceNotFound()
        {
            var fs = new FakeFileSystem();

            fs.FileExists(false);
            _factory = new AddReferenceProcessorFactory(_solution, _processors, fs);
            var request = new AddReferenceRequest
            {
                Reference = "Nancy.dll"
            };

            var processor = _factory.CreateProcessorFor(request);

            processor.ShouldBeType <AddGacReferenceProcessor>();
        }
Пример #21
0
        public void itShouldDeleteBackupFileOnCleanup()
        {
            var fileSysCommand = new MockFileSystemCommand();
            var fakeFileSystem = new FakeFileSystem(fileSysCommand);

            var fileToDelete = @"c:\dummysourcefile.txt";

            fakeFileSystem.AddFiles(fileToDelete);
            var fileDeleteCommand = new FileDeleteCommand(@"c:\dummybackupdir", fileSysCommand, fileToDelete);

            fileDeleteCommand.Do();
            fileDeleteCommand.Cleanup();

            Assert.IsFalse(fakeFileSystem.FileExists(fileDeleteCommand.BackupFilename));
        }
Пример #22
0
        public void itShouldHaveCopiedFileIfSuccessful()
        {
            var fileSysCommand = new MockFileSystemCommand();
            var fakeFileSystem = new FakeFileSystem(fileSysCommand);

            var fileToCopy     = @"c:\dummysourcefile.txt";
            var targetFileCopy = @"c:\somefolder\dummysourcefile.doc";

            fakeFileSystem.AddFiles(fileToCopy);
            var fileCopyCommand = new FileCopyCommand(@"c:\dummybackupdir", fileSysCommand, fileToCopy, targetFileCopy);

            fileCopyCommand.Do();

            Assert.IsTrue(fileCopyCommand.DidCommandSucceed);
            Assert.IsTrue(fakeFileSystem.FileExists(targetFileCopy));
        }
        public void itShouldRenameUsingMultipleFilenameTokens()
        {
            string inputFile1     = @"C:\someDir\someFile.txt";
            string pattern        = "preText-[n]-postText-[n].txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile1);
            var renameFileCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile1);

            renameFileCommand.Do();

            var targetFile = @"C:\someDir\preText-someFile-postText-someFile.txt";

            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile1], targetFile);
            Assert.IsTrue(fakeFileSystem.FileExists(targetFile));
        }
        public void itShouldRenameUsingFileExtensionTokenEvenIfSourceHasNoExtension()
        {
            string inputFile      = @"C:\someDir\someFileNoExt";
            string pattern        = "renamed-[n][e]";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile);
            var renameFileCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile);

            renameFileCommand.Do();

            Assert.IsTrue(renameFileCommand.DidCommandSucceed);
            var outputFile = $@"C:\someDir\renamed-someFileNoExt";

            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile], outputFile);
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile));
        }
        public void itShouldSucceedWhenThereAreNoReplacementTokens()
        {
            string inputFile      = @"C:\someDir\someFile.txt";
            string pattern        = "newFileName.txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile);
            var fileRenameCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile);

            fileRenameCommand.Do();

            Assert.IsTrue(fileRenameCommand.DidCommandSucceed);
            var outputFile = @"C:\someDir\newFileName.txt";

            Assert.AreEqual(fileRenameCommand.RenamedFiles[inputFile], outputFile);
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile));
        }
Пример #26
0
        public void SavePost_SaveSimplePost()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post {
                Slug  = "Test-Post-Slug",
                Title = "Test Title",
                Body  = "Test contents",
            };

            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists("BlogFiles\\Test-Post-Slug.xml"));
            Post result = testDataStore.GetPost("Test-Post-Slug");

            Assert.Equal("Test-Post-Slug", result.Slug);
            Assert.Equal("Test Title", result.Title);
            Assert.Equal("Test contents", result.Body);
        }
        public void itShouldRenameUsingFilenameAndDateTimeToken()
        {
            string inputFile      = @"C:\someDir\someFile.txt";
            string pattern        = "preText-[n]-postText-[d:MMdd].txt";
            var    fileSysCommand = new MockFileSystemCommand();
            var    fakeFileSystem = new FakeFileSystem(fileSysCommand);

            fakeFileSystem.AddFiles(inputFile);
            var renameFileCommand = new MultiFileRenameWithPatternCommand(pattern, fileSysCommand, inputFile);

            renameFileCommand.Do();

            Assert.IsTrue(renameFileCommand.DidCommandSucceed);
            var computedReplacement = renameFileCommand.DateTimeReference.ToString("MMdd");
            var outputFile          = $@"C:\someDir\preText-someFile-postText-{computedReplacement}.txt";

            Assert.AreEqual(renameFileCommand.RenamedFiles[inputFile], outputFile);
            Assert.IsTrue(fakeFileSystem.FileExists(outputFile));
        }
Пример #28
0
        public void SavePost_NoExcerptIsEntered_AutoGenerateExcerpt()
        {
            IFileSystem   fakeFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(fakeFileSystem);

            Post newPost = new Post
            {
                Title = "Title",
                Body  = "This is the body of my post",
            };

            testDataStore.SavePost(newPost);

            Assert.True(fakeFileSystem.FileExists($"BlogFiles\\Title.xml"));
            Post result = testDataStore.CollectPostInfo($"BlogFiles\\Title.xml");

            Assert.Equal(result.Body, "This is the body of my post");
            Assert.Equal(result.Excerpt, "This ");
        }
Пример #29
0
        public void itShouldNotDeleteTargetZipOnUndoIfCommandFailed()
        {
            var targetZipFile = @"dummytargetZip.7z";
            var zip7FileCompressionCommand = new Zip7CompressCommand("dummy7zip.exe", targetZipFile, "file1.txt", "file2.txt");

            zip7FileCompressionCommand.setFileCompressionStrategy(new MockFileCompressionStrategy(1));
            var mockFileSysCommand = new MockFileSystemCommand();

            zip7FileCompressionCommand.setFileSystemCommandsStrategy(mockFileSysCommand);
            var fakeFileSystem = new FakeFileSystem(mockFileSysCommand);

            zip7FileCompressionCommand.Do();
            Assert.IsFalse(zip7FileCompressionCommand.DidCommandSucceed);

            fakeFileSystem.AddFiles(targetZipFile);

            zip7FileCompressionCommand.Undo();

            Assert.IsTrue(fakeFileSystem.FileExists(targetZipFile));
        }
Пример #30
0
        public void SavePost_SaveSimplePost()
        {
            IFileSystem   testFileSystem = new FakeFileSystem();
            BlogDataStore testDataStore  = new BlogDataStore(testFileSystem);
            Post          testPost       = new Post
            {
                Slug     = "Test-Post-Slug",
                Title    = "Test Title",
                Body     = "Test contents",
                IsPublic = true
            };

            testPost.PubDate = DateTime.UtcNow;
            testDataStore.SavePost(testPost);

            Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":","-")}_{testPost.Id}.xml"));
            Post result = testDataStore.GetPost(testPost.Id);

            Assert.Equal("Test-Post-Slug", result.Slug);
            Assert.Equal("Test Title", result.Title);
            Assert.Equal("Test contents", result.Body);
        }
Пример #31
0
        public void itShouldDeleteMultipleFiles()
        {
            var fileSysCommand = new MockFileSystemCommand();
            var fakeFileSystem = new FakeFileSystem(fileSysCommand);
            var fileToDelete1  = @"c:\dummysourcefile1.txt";
            var fileToDelete2  = @"c:\dummysourcefile2.txt";
            var fileToDelete3  = @"c:\dummysourcefile3.txt";

            fakeFileSystem.AddFiles(fileToDelete1, fileToDelete2, fileToDelete3);
            Assert.IsTrue(fakeFileSystem.FileExists(fileToDelete1));
            Assert.IsTrue(fakeFileSystem.FileExists(fileToDelete2));
            Assert.IsTrue(fakeFileSystem.FileExists(fileToDelete3));

            var fileDeleteCommand = new FileDeleteCommand(@"c:\dummybackupdir", fileSysCommand, fileToDelete1, fileToDelete2, fileToDelete3);

            fileDeleteCommand.Do();

            Assert.IsFalse(fakeFileSystem.FileExists(fileToDelete1));
            Assert.IsFalse(fakeFileSystem.FileExists(fileToDelete2));
            Assert.IsFalse(fakeFileSystem.FileExists(fileToDelete3));
        }