Beispiel #1
0
        public void HadoopFileSystemGetFileSystemEntriesTest()
        {
            HadoopFileSystem fileSystem = new HadoopFileSystem(this.hostname, this.portNumber, this.authentication);

            if (!fileSystem.IsConnected)
            {
                Assert.Inconclusive();
            }

            // empty directory

            fileSystem.CreateDirectory(this.directoryPath);
            fileSystem.GetFileSystemEntries(this.directoryPath).ShouldBeEmpty();

            // only directories

            fileSystem.CreateDirectory(this.directoryPath + "/InnerDirectory1");
            fileSystem.CreateDirectory(this.directoryPath + "/InnerDirectory2");

            FileSystemEntry[] directories = fileSystem.GetFileSystemEntries(this.directoryPath);

            directories.Length.ShouldBe(2);
            directories[0].Path.ShouldBe(this.directoryPath + "/InnerDirectory1");
            directories[1].Path.ShouldBe(this.directoryPath + "/InnerDirectory2");

            // with search pattern

            directories = fileSystem.GetFileSystemEntries(this.directoryPath, "*1", false);

            directories.Length.ShouldBe(1);
            directories[0].Path.ShouldBe(this.directoryPath + "/InnerDirectory1");

            // recursive

            fileSystem.CreateDirectory(this.directoryPath + "/InnerDirectory1/DeepInnerDirectory1");
            fileSystem.CreateDirectory(this.directoryPath + "/InnerDirectory1/DeepInnerDirectory2");

            directories = fileSystem.GetFileSystemEntries(this.directoryPath, "*", true);

            directories.Length.ShouldBe(4);
            directories[0].Path.ShouldBe(this.directoryPath + "/InnerDirectory1");
            directories[1].Path.ShouldBe(this.directoryPath + "/InnerDirectory1/DeepInnerDirectory1");
            directories[2].Path.ShouldBe(this.directoryPath + "/InnerDirectory1/DeepInnerDirectory2");
            directories[3].Path.ShouldBe(this.directoryPath + "/InnerDirectory2");

            fileSystem.Delete(this.directoryPath);

            // exceptions

            Should.Throw <ArgumentNullException>(() => fileSystem.GetFileSystemEntries(null));
            Should.Throw <ArgumentException>(() => fileSystem.GetFileSystemEntries(String.Empty));
            Should.Throw <ArgumentException>(() => fileSystem.GetFileSystemEntries(":"));
            Should.Throw <ArgumentException>(() => fileSystem.GetFileSystemEntries("/NotExistingPath/"));
        }
        public void HadoopFileSystemGetFileSystemEntriesTest()
        {
            HadoopFileSystem fileSystem = new HadoopFileSystem(_hostname, _portNumber, _authentication);

            if (!fileSystem.IsConnected)
            {
                Assert.Inconclusive();
            }


            // empty directory

            fileSystem.CreateDirectory(_directoryPath);

            Assert.AreEqual(0, fileSystem.GetFileSystemEntries(_directoryPath).Length);


            // only directories

            fileSystem.CreateDirectory(_directoryPath + "/InnerDirectory1");
            fileSystem.CreateDirectory(_directoryPath + "/InnerDirectory2");

            FileSystemEntry[] directories = fileSystem.GetFileSystemEntries(_directoryPath);

            Assert.AreEqual(2, directories.Length);
            Assert.AreEqual(_directoryPath + "/InnerDirectory1", directories[0].Path);
            Assert.AreEqual(_directoryPath + "/InnerDirectory2", directories[1].Path);


            // with search pattern

            directories = fileSystem.GetFileSystemEntries(_directoryPath, "*1", false);

            Assert.AreEqual(1, directories.Length);
            Assert.AreEqual(_directoryPath + "/InnerDirectory1", directories[0].Path);


            // recursive

            fileSystem.CreateDirectory(_directoryPath + "/InnerDirectory1/DeepInnerDirectory1");
            fileSystem.CreateDirectory(_directoryPath + "/InnerDirectory1/DeepInnerDirectory2");

            directories = fileSystem.GetFileSystemEntries(_directoryPath, "*", true);

            Assert.AreEqual(4, directories.Length);
            Assert.AreEqual(_directoryPath + "/InnerDirectory1", directories[0].Path);
            Assert.AreEqual(_directoryPath + "/InnerDirectory1/DeepInnerDirectory1", directories[1].Path);
            Assert.AreEqual(_directoryPath + "/InnerDirectory1/DeepInnerDirectory2", directories[2].Path);
            Assert.AreEqual(_directoryPath + "/InnerDirectory2", directories[3].Path);


            fileSystem.Delete(_directoryPath);


            // exceptions

            Assert.Throws <ArgumentNullException>(() => fileSystem.GetFileSystemEntries(null));
            Assert.Throws <ArgumentException>(() => fileSystem.GetFileSystemEntries(String.Empty));
            Assert.Throws <ArgumentException>(() => fileSystem.GetFileSystemEntries(":"));
            Assert.Throws <ArgumentException>(() => fileSystem.GetFileSystemEntries("/NotExistingPath/"));
        }