예제 #1
0
        private IFileSystem GenerateMockFileSystem()
        {
            MockFileSystem fileSystem = new MockFileSystem();

            fileSystem.AddMockFile(@"c:\logs\abc\status.txt", _checkpoints[1], "this is the status file!");
            fileSystem.AddMockFile(@"c:\logs\abc\Faults\1\oatmeal.txt", _checkpoints[0], "this is the oatmeal file!");
            fileSystem.AddMockFile(@"c:\logs\abc\Faults\2\potatoes.txt", _checkpoints[0], "here, have some potatoes");
            fileSystem.AddMockFile(@"c:\logs\abc\Faults\3\carrots.txt", _checkpoints[1], "carrots are orange");
            fileSystem.AddMockFile(@"c:\logs\abc\Reproducing\4\tomatoes.txt", _checkpoints[1], "tomatoes are nutritious");

            fileSystem.AddMockFile(@"c:\logs\def\status.txt", _checkpoints[3], "hamburgers without cheese are called hamburgers");
            fileSystem.AddMockFile(@"c:\logs\def\Faults\1\oatmeal.txt", _checkpoints[3], "this is a duplicate oatmeal file");
            fileSystem.AddMockFile(@"c:\logs\def\Faults\15\hamburgers.txt", _checkpoints[2], "hamburgers without cheese are called hamburgers");
            fileSystem.AddMockFile(@"c:\logs\def\Faults\18\lettuce.txt", _checkpoints[3], "let us eat lettuce");

            return(fileSystem);
        }
예제 #2
0
        public void DirectoryTraversalTest()
        {
            //
            // This test should throw an exception because the package is attempting to cause FolderUnpacker to unpack outside of
            // the destination folder.
            //

            MockFileSystem mockFileSystem = new MockFileSystem();

            mockFileSystem.AddMockFile(@"c:\root\status.txt", new DateTime(2012, 5, 15, 2, 15, 08), "this is the status.");
            mockFileSystem.AddMockFile(@"c:\root\..\evil.dat", new DateTime(2012, 5, 15, 2, 15, 08), "this is an evil file that's attempting to do directory traversal.");

            PeachFolderPackager packager = new PeachFolderPackager(mockFileSystem);

            byte[] packedBytes = packager.PackFolder(@"c:\root", new DateTime(0));

            MockFileSystem destinationFileSystem = new MockFileSystem();
            FolderUnpacker unpackager            = new FolderUnpacker(destinationFileSystem, "xyz");

            unpackager.UnpackFolder(@"c:\collectedlogs", packedBytes);
        }