/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.shell.command; import alluxio.exception.AlluxioException; import alluxio.exception.ExceptionMessage; import alluxio.shell.AbstractAlluxioShellTest; import alluxio.shell.AlluxioShellUtilsTest; import org.junit.Assert; import org.junit.Test; import java.io.IOException; /** * Tests for stat command. */ public final class StatCommandTest extends AbstractAlluxioShellTest { @Test public void statFileNotExist() throws IOException { int ret = mFsShell.run("stat", "/NotExistFile"); Assert.assertEquals(ExceptionMessage.PATH_DOES_NOT_EXIST.getMessage("/NotExistFile") + "\n", mOutput.toString()); Assert.assertEquals(-1, ret); } @Test public void statFileWildCard() throws IOException, AlluxioException { String testDir = AlluxioShellUtilsTest.resetFileHierarchy(mFileSystem); mFsShell.run("stat", testDir + "/*"); String res1 = mOutput.toString(); Assert.assertTrue(res1.contains(testDir + "/foo")); Assert.assertTrue(res1.contains(testDir + "/bar")); Assert.assertTrue(res1.contains(testDir + "/foobar4")); Assert.assertFalse(res1.contains(testDir + "/foo/foobar1")); Assert.assertFalse(res1.contains(testDir + "/bar/foobar3")); mFsShell.run("stat", testDir + "/*/foo*"); String res2 = mOutput.toString(); res2 = res2.replace(res1, ""); Assert.assertTrue(res2.contains(testDir + "/foo/foobar1")); Assert.assertTrue(res2.contains(testDir + "/foo/foobar2")); Assert.assertTrue(res2.contains(testDir + "/bar/foobar3")); Assert.assertFalse(res2.contains(testDir + "/foobar4")); } @Test public void statDirectoryWildCard() throws IOException, AlluxioException { String testDir = AlluxioShellUtilsTest.resetFileHierarchy(mFileSystem); mFsShell.run("stat", testDir + "/*"); String res1 = mOutput.toString(); Assert.assertTrue(res1.contains(testDir + "/foo")); Assert.assertTrue(res1.contains(testDir + "/bar")); Assert.assertTrue(res1.contains(testDir + "/foobar4")); Assert.assertFalse(res1.contains(testDir + "/foo/foobar1")); Assert.assertFalse(res1.contains(testDir + "/bar/foobar3")); mFsShell.run("stat", testDir + "/*/foo*"); String res2 = mOutput.toString(); res2 = res2.replace(res1, ""); Assert.assertTrue(res2.contains(testDir + "/foo/foobar1")); Assert.assertTrue(res2.contains(testDir + "/foo/foobar2")); Assert.assertTrue(res2.contains(testDir + "/bar/foobar3")); Assert.assertFalse(res2.contains(testDir + "/foobar4")); } @Test public void statFileFormat() throws IOException, AlluxioException { String testDir = AlluxioShellUtilsTest.resetFileHierarchy(mFileSystem); String format = "%N-%z-%b-%u-%g-%Y"; mFsShell.run("stat", "-f", format, testDir + "/foo/foobar1"); String res1 = mOutput.toString(); Assert.assertTrue(res1.startsWith("foobar1-10-1-")); format = "%N-%z-%b-%u-%g-%y"; mFsShell.run("stat", "-f", format, testDir + "/foo/foobar1"); String res2 = mOutput.toString(); res2 = res2.replace(res1, ""); Assert.assertTrue(res2.startsWith("foobar1-10-1-")); } @Test public void statDirectoryFormat() throws IOException, AlluxioException { String testDir = AlluxioShellUtilsTest.resetFileHierarchy(mFileSystem); String format = "%N-%z-%b-%Y-%u-%g"; mFsShell.run("stat", "-f", format, testDir + "/foo"); String res1 = mOutput.toString(); Assert.assertTrue(res1.startsWith("foo-NA-NA-")); format = "%N-%z-%b-%y-%u-%g"; mFsShell.run("stat", "-f", format, testDir + "/foo"); String res2 = mOutput.toString(); res2 = res2.replace(res1, ""); Assert.assertTrue(res2.startsWith("foo-NA-NA-")); } }