Exemplo n.º 1
0
        public void AddTwoDirectoriesFullPath()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/test");

            if (fileSystem.TryGetFile("/directory", out var directory1))
            {
                Assert.AreEqual("directory", directory1.Name);
                Assert.AreEqual("/directory", directory1.Path);
            }
            else
            {
                Assert.Fail("Directory was not added or couldn't be found in the tree.");
            }

            if (fileSystem.TryGetFile("/directory/test", out var directory2))
            {
                Assert.AreEqual("test", directory2.Name);
                Assert.AreEqual("/directory/test", directory2.Path);
            }
            else
            {
                Assert.Fail("Directory was not added or couldn't be found in the tree.");
            }
        }
Exemplo n.º 2
0
        public void ChangeDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/testDirectory");

            Assert.AreEqual("/", fileSystem.CurrentDirectoryPath);

            fileSystem.ChangeDirectory("/directory");

            Assert.AreEqual("/directory", fileSystem.CurrentDirectoryPath);

            fileSystem.ChangeDirectory("testDirectory");

            Assert.AreEqual("/directory/testDirectory", fileSystem.CurrentDirectoryPath);

            fileSystem.ChangeDirectory("..");

            Assert.AreEqual("/directory", fileSystem.CurrentDirectoryPath);

            fileSystem.ChangeDirectory("../directory/testDirectory");

            Assert.AreEqual("/directory/testDirectory", fileSystem.CurrentDirectoryPath);

            fileSystem.ChangeDirectory("/");

            Assert.AreEqual("/", fileSystem.CurrentDirectoryPath);
        }
Exemplo n.º 3
0
        public void RemoveContentFilesFromDifferentDirectories()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/directory1");
            if (fileSystem.TryGetFile("/directory", out var file) && file is Directory directory)
            {
                if (fileSystem.TryGetFile("/directory/directory1", out var file1) && file1 is Directory directory1)
                {
                    directory.AddChild(new ContentFile("/directory/file1", "test", directory));
                    directory1.AddChild(new ContentFile("/directory/directory1/file2", "test", directory1));

                    var paths = new[] { "/directory/file1", "/directory/directory1/file2" };

                    Assert.IsTrue(2 == directory.GetChildren().Count());
                    Assert.IsTrue(1 == directory1.GetChildren().Count());

                    fileSystem.RemoveContentFiles(paths);

                    Assert.IsTrue(1 == directory.GetChildren().Count());
                    Assert.IsTrue(!directory1.GetChildren().Any());
                }
                else
                {
                    Assert.Fail();
                }
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 4
0
        public void TryAddExistingDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("directory");
            fileSystem.CreateDirectory("directory");
        }
Exemplo n.º 5
0
        public void TryNavigateToInvalidDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/testDirectory");

            fileSystem.ChangeDirectory("/directory1");
        }
Exemplo n.º 6
0
        public void ListInvalidDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/testDirectory");
            fileSystem.CreateDirectory("/directory/testDirectory1");
            fileSystem.CreateDirectory("/directory/testDirectory2");

            var listedDirectory = fileSystem.ListDirectory("/directory/123").ToList();
        }
Exemplo n.º 7
0
        public void ListCurrentDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/testDirectory");

            var listedDirectory = fileSystem.ListDirectory("").ToList();

            Assert.AreEqual(1, listedDirectory.Count);
        }
Exemplo n.º 8
0
        public void ListDirectoryRelative()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            fileSystem.CreateDirectory("/directory/testDirectory");
            fileSystem.CreateDirectory("/directory/testDirectory1");
            fileSystem.CreateDirectory("/directory/testDirectory2");

            var listedDirectory = fileSystem.ListDirectory("directory").ToList();

            Assert.AreEqual(3, listedDirectory.Count);
            Assert.IsTrue(listedDirectory.FirstOrDefault(f => f.Path == "/directory/testDirectory") != null);
            Assert.IsTrue(listedDirectory.FirstOrDefault(f => f.Path == "/directory/testDirectory1") != null);
            Assert.IsTrue(listedDirectory.FirstOrDefault(f => f.Path == "/directory/testDirectory2") != null);
        }
Exemplo n.º 9
0
        public void TryCreateContentFileIntoMissingDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            fileSystem.CreateContentFile("/directory1/test", "Hello.");
        }
Exemplo n.º 10
0
        public void TryRemoveDirectoryWithRemoveContentFileFunction()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");
            var paths = new[] { "/directory" };

            fileSystem.RemoveContentFiles(paths);
        }
Exemplo n.º 11
0
        public void TryCreateContentFileWhenFileAlreadyExists()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            fileSystem.CreateContentFile("/directory/test", "Hello.");
            fileSystem.CreateContentFile("/directory/test", "Hello.");
        }
Exemplo n.º 12
0
 /// <summary>
 /// Executes the make directory command.
 /// </summary>
 /// <param name="fileSystem">The file system on which the command is going to be executed.</param>
 public override void Execute(Models.FileSystem fileSystem)
 {
     try
     {
         fileSystem.CreateDirectory(Path);
     }
     catch (ArgumentException argumentException)
     {
         Console.WriteLine(argumentException.Message);
     }
     catch (InvalidOperationException invalidOperationException)
     {
         Console.WriteLine(invalidOperationException.Message);
     }
 }
Exemplo n.º 13
0
        public void AddDirectoryFullPathAndTryGetIt()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            if (fileSystem.TryGetFile("/directory", out var directory))
            {
                Assert.AreEqual("directory", directory.Name);
                Assert.AreEqual("/directory", directory.Path);
            }
            else
            {
                Assert.Fail("Directory was not added or couldn't be found in the tree.");
            }
        }
Exemplo n.º 14
0
        public void TryAddFileWithSameName()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            if (fileSystem.TryGetFile("/directory", out var file) && file is Directory directory)
            {
                directory.AddChild(new ContentFile("/directory/file1", "test", directory));
                directory.AddChild(new ContentFile("/directory/file1", "test", directory));
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 15
0
        public void CreateContentFile()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            fileSystem.CreateContentFile("/directory/test", "Hello.");

            if (fileSystem.TryGetFile("/directory/test", out File file) && file is ContentFile contentFile)
            {
                Assert.IsTrue(string.Equals("Hello.", contentFile.Content));
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 16
0
        public void TryRemoveOneDirectoryOneContentFileWithRemoveContentFileFunction()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            if (fileSystem.TryGetFile("/directory", out var file) && file is Directory directory)
            {
                directory.AddChild(new ContentFile("/file1", "test", directory));

                var paths = new[] { "/file1", "/directory" };

                fileSystem.RemoveContentFiles(paths);
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 17
0
        public void TryRemoveMissingContentFile()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory");

            if (fileSystem.TryGetFile("/directory", out var file) && file is Directory directory)
            {
                directory.AddChild(new ContentFile("/directory/file1", "test", directory));

                var paths = new[] { "/directory/file1", "/directory/file2" };

                Assert.IsTrue(1 == directory.GetChildren().Count());

                fileSystem.RemoveContentFiles(paths);
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 18
0
        public void TryAddInvalidDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory(null);
        }
Exemplo n.º 19
0
        public void TryAddDirectoryWithMissingPath()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory("/directory/test");
        }
Exemplo n.º 20
0
        public void TryCreateNullDirectory()
        {
            var fileSystem = new Models.FileSystem();

            fileSystem.CreateDirectory(null);
        }