Repository: syncope Updated Branches: refs/heads/master 9b033aa1b -> 444182f72
Added unit tests, SYNCOPE-727 Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/444182f7 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/444182f7 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/444182f7 Branch: refs/heads/master Commit: 444182f724a4fc9a9f2985244f630aa30659e4c8 Parents: 9b033aa Author: massi <[email protected]> Authored: Fri Nov 20 11:10:08 2015 +0100 Committer: massi <[email protected]> Committed: Fri Nov 20 11:10:08 2015 +0100 ---------------------------------------------------------------------- client/cli/pom.xml | 5 ++ .../syncope/client/cli/util/CommandUtils.java | 2 +- .../client/cli/util/FileSystemUtils.java | 40 ------------- .../syncope/client/cli/util/JasyptUtils.java | 4 +- .../client/cli/util/CommandUtilsTest.java | 62 ++++++++++++++++++++ .../client/cli/util/JasyptUtilsTest.java | 42 +++++++++++++ 6 files changed, 113 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/pom.xml ---------------------------------------------------------------------- diff --git a/client/cli/pom.xml b/client/cli/pom.xml index 447d7f7..61282ce 100644 --- a/client/cli/pom.xml +++ b/client/cli/pom.xml @@ -81,6 +81,11 @@ under the License. <artifactId>jcl-over-slf4j</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/src/main/java/org/apache/syncope/client/cli/util/CommandUtils.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/util/CommandUtils.java b/client/cli/src/main/java/org/apache/syncope/client/cli/util/CommandUtils.java index 8085380..9b401a6 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/util/CommandUtils.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/util/CommandUtils.java @@ -75,7 +75,7 @@ public final class CommandUtils { } return types; } - + public static String helpMessage(final String command, final List<String> options) { final StringBuilder helpMessageBuilder = new StringBuilder(String.format("\nUsage: %s [options]\n", command)); helpMessageBuilder.append(" Options:\n"); http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/src/main/java/org/apache/syncope/client/cli/util/FileSystemUtils.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/util/FileSystemUtils.java b/client/cli/src/main/java/org/apache/syncope/client/cli/util/FileSystemUtils.java index 8fc779c..6ed7a9b 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/util/FileSystemUtils.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/util/FileSystemUtils.java @@ -18,30 +18,13 @@ */ package org.apache.syncope.client.cli.util; -import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.attribute.PosixFilePermission; -import java.util.HashSet; -import java.util.ResourceBundle; -import java.util.Set; -import org.apache.syncope.client.cli.commands.install.InstallConfigFileTemplate; public final class FileSystemUtils { - private static final ResourceBundle CONF = ResourceBundle.getBundle("configuration"); - - public static void createNewDirectory(final String directoryToCreate) { - final File directory = new File(directoryToCreate); - directory.mkdirs(); - } - public static void createFileWith(final String filePath, final String content) throws FileNotFoundException, UnsupportedEncodingException { try (PrintWriter writer = new PrintWriter(filePath, "UTF-8")) { @@ -59,29 +42,6 @@ public final class FileSystemUtils { return installationDirectory.exists(); } - public static void createScriptFile() throws FileNotFoundException, UnsupportedEncodingException, IOException { - final File file = new File(InstallConfigFileTemplate.scriptFilePath()); - file.setExecutable(true); - file.setReadable(true); - file.setWritable(true); - file.createNewFile(); - final FileWriter fw = new FileWriter(file.getAbsoluteFile()); - final BufferedWriter bw = new BufferedWriter(fw); - if (isWindows()) { - bw.write(CONF.getString("script.file.windows")); - } else { - bw.write(CONF.getString("script.file.linux")); - final Set<PosixFilePermission> perms = new HashSet<>(); - perms.add(PosixFilePermission.OWNER_READ); - perms.add(PosixFilePermission.OWNER_WRITE); - perms.add(PosixFilePermission.OWNER_EXECUTE); - perms.add(PosixFilePermission.GROUP_READ); - perms.add(PosixFilePermission.OTHERS_READ); - Files.setPosixFilePermissions(Paths.get(file.getAbsolutePath()), perms); - } - bw.close(); - } - public static boolean isWindows() { return (System.getProperty("os.name").toLowerCase().contains("win")); } http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/src/main/java/org/apache/syncope/client/cli/util/JasyptUtils.java ---------------------------------------------------------------------- diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/util/JasyptUtils.java b/client/cli/src/main/java/org/apache/syncope/client/cli/util/JasyptUtils.java index 0f9d592..fe99971 100644 --- a/client/cli/src/main/java/org/apache/syncope/client/cli/util/JasyptUtils.java +++ b/client/cli/src/main/java/org/apache/syncope/client/cli/util/JasyptUtils.java @@ -22,6 +22,8 @@ import org.jasypt.util.text.BasicTextEncryptor; public final class JasyptUtils { + private static final String JASYPT_KEY = "Ka9s8yadaisj9mud87ssdaifansy"; + private final BasicTextEncryptor textEncryptor; private static JasyptUtils JASYPT_UTILS = null; @@ -35,7 +37,7 @@ public final class JasyptUtils { private JasyptUtils() { textEncryptor = new BasicTextEncryptor(); - textEncryptor.setPassword("Ka9s8yadaisj9mud87ssdaifansy"); + textEncryptor.setPassword(JASYPT_KEY); } public String encrypt(final String password) { http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/src/test/java/org/apache/syncope/client/cli/util/CommandUtilsTest.java ---------------------------------------------------------------------- diff --git a/client/cli/src/test/java/org/apache/syncope/client/cli/util/CommandUtilsTest.java b/client/cli/src/test/java/org/apache/syncope/client/cli/util/CommandUtilsTest.java new file mode 100644 index 0000000..60be06f --- /dev/null +++ b/client/cli/src/test/java/org/apache/syncope/client/cli/util/CommandUtilsTest.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.util; + +import static org.junit.Assert.fail; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +import java.util.List; +import org.apache.syncope.client.cli.Command; +import org.apache.syncope.client.cli.commands.AbstractCommand; +import org.junit.Test; + +public class CommandUtilsTest { + + @Test + public void fromArgs() { + final String commandName = "logger"; + try { + final AbstractCommand command = CommandUtils.fromArgs(commandName); + assertEquals(commandName, command.getClass().getAnnotation(Command.class).name()); + } catch (final IllegalAccessException | IllegalArgumentException | InstantiationException ex) { + fail(ex.getMessage()); + } + + final String wrongCommandName = "wrong"; + try { + CommandUtils.fromArgs(wrongCommandName); + fail(wrongCommandName + " isn't a right command, why you are here?"); + } catch (final IllegalAccessException | IllegalArgumentException | InstantiationException ex) { + assertEquals(IllegalArgumentException.class, ex.getClass()); + assertEquals(wrongCommandName + " is not a valid command", ex.getMessage()); + } + } + + @Test + public void commands() { + try { + final List<AbstractCommand> commands = CommandUtils.commands(); + assertFalse(commands.isEmpty()); + assertEquals(21, commands.size()); + } catch (final IllegalAccessException | IllegalArgumentException | InstantiationException ex) { + fail(ex.getMessage()); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/444182f7/client/cli/src/test/java/org/apache/syncope/client/cli/util/JasyptUtilsTest.java ---------------------------------------------------------------------- diff --git a/client/cli/src/test/java/org/apache/syncope/client/cli/util/JasyptUtilsTest.java b/client/cli/src/test/java/org/apache/syncope/client/cli/util/JasyptUtilsTest.java new file mode 100644 index 0000000..2c4b963 --- /dev/null +++ b/client/cli/src/test/java/org/apache/syncope/client/cli/util/JasyptUtilsTest.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.syncope.client.cli.util; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class JasyptUtilsTest { + + @Test + public void singleton() { + final JasyptUtils jasyptUtils = JasyptUtils.getJasyptUtils(); + final JasyptUtils jasyptUtils2 = JasyptUtils.getJasyptUtils(); + assertEquals(jasyptUtils, jasyptUtils2); + } + + @Test + public void encryption() { + final String password = "password"; + final JasyptUtils jasyptUtils = JasyptUtils.getJasyptUtils(); + final String encPassword = jasyptUtils.encrypt(password); + final String decPassword = jasyptUtils.decrypt(encPassword); + assertEquals(password, decPassword); + } +}
