Repository: incubator-ranger Updated Branches: refs/heads/master 9ee9b2c14 -> b8d94100f
RANGER-234: modification to UT - to work with recent changes in Hadoop Common Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/b8d94100 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/b8d94100 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/b8d94100 Branch: refs/heads/master Commit: b8d94100f160810808378db216710192d35ae7ac Parents: 9ee9b2c Author: sneethiraj <[email protected]> Authored: Wed Mar 4 22:02:15 2015 -0500 Committer: sneethiraj <[email protected]> Committed: Wed Mar 4 22:02:15 2015 -0500 ---------------------------------------------------------------------- .../credentialapi/TestCredentialReader.java | 40 +++++++++++++++++-- .../ranger/credentialapi/Testbuildks.java | 41 +++++++++++++++++++- 2 files changed, 77 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b8d94100/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java ---------------------------------------------------------------------- diff --git a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java index fac8148..8dc64a7 100644 --- a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java +++ b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java @@ -21,9 +21,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; +import java.lang.reflect.Field; -import org.apache.ranger.credentialapi.CredentialReader; -import org.apache.ranger.credentialapi.buildks; +import org.apache.hadoop.security.alias.CredentialShell; import org.junit.Before; import org.junit.Test; @@ -44,12 +44,46 @@ public class TestCredentialReader { assertEquals( "PassworD123", password); assertTrue(password,"PassworD123".equals(password)); //delete after use - String[] argsdeleteCommand = {"delete", "TestCredential2", "-provider", "jceks://file@/" + keystoreFile}; + + String[] argsdeleteCommand = null ; + + if (isCredentialShellInteractiveEnabled()) { + argsdeleteCommand = new String[] {"delete", "TestCredential2", "-f", "-provider", "jceks://file@/" + keystoreFile}; + } + else { + argsdeleteCommand = new String[] {"delete", "TestCredential2", "-provider", "jceks://file@/" + keystoreFile}; + } + buildks buildksOBJ=new buildks(); buildksOBJ.deleteCredential(argsdeleteCommand); } + private static boolean isCredentialShellInteractiveEnabled() { + boolean ret = false ; + + String fieldName = "interactive" ; + + CredentialShell cs = new CredentialShell() ; + + try { + Field interactiveField = cs.getClass().getDeclaredField(fieldName) ; + + if (interactiveField != null) { + interactiveField.setAccessible(true); + ret = interactiveField.getBoolean(cs) ; + System.out.println("FOUND value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "] = [" + ret + "]") ; + } + } catch (Throwable e) { + System.out.println("Unable to find the value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "]. Skiping -f option") ; + e.printStackTrace(); + ret = false; + } + + return ret ; + + } + http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b8d94100/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java ---------------------------------------------------------------------- diff --git a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java index d01f842..f336186 100644 --- a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java +++ b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java @@ -21,7 +21,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; +import java.lang.reflect.Field; +import org.apache.hadoop.security.alias.CredentialShell; import org.apache.ranger.credentialapi.buildks; import org.junit.Test; @@ -45,8 +47,18 @@ public class Testbuildks { assertEquals("PassworD123", pw); assertTrue(pw.equals("PassworD123")); boolean getCredentialPassed = pw.equals("PassworD123"); + + String[] argsDeleteCommand = null ; + + if (isCredentialShellInteractiveEnabled()) { + argsDeleteCommand = new String[] {"delete", "TestCredential1", "-f", "-provider", "jceks://file@/" +keystoreFile }; + + } + else { + argsDeleteCommand = new String[] {"delete", "TestCredential1", "-provider", "jceks://file@/" +keystoreFile }; + + } - String[] argsDeleteCommand = {"delete", "TestCredential1", "-provider", "jceks://file@/" +keystoreFile }; int rc3=buildksOBJ.deleteCredential(argsDeleteCommand); assertEquals(0, rc3); assertTrue(rc3==0); @@ -78,4 +90,31 @@ public class Testbuildks { tTestbuildks.testBuildKSsuccess(); }*/ + + private static boolean isCredentialShellInteractiveEnabled() { + boolean ret = false ; + + String fieldName = "interactive" ; + + CredentialShell cs = new CredentialShell() ; + + try { + Field interactiveField = cs.getClass().getDeclaredField(fieldName) ; + + if (interactiveField != null) { + interactiveField.setAccessible(true); + ret = interactiveField.getBoolean(cs) ; + System.out.println("FOUND value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "] = [" + ret + "]") ; + } + } catch (Throwable e) { + System.out.println("Unable to find the value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "]. Skiping -f option") ; + e.printStackTrace(); + ret = false; + } + + return ret ; + + } + + }
