package org.jolokia.jvmagent.client.command;
import org.jolokia.jvmagent.client.util.OptionsAndArgs;
import org.jolokia.util.JolokiaCipher;
import org.testng.annotations.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.testng.Assert.assertEquals;
/**
* @author nevenr
* @since 18/09/2015
*/
public class EncryptCommandTest {
class JCPPTest implements JolokiaCipher.KeyHolder {
@Override
public String getKey() {
return "changeit";
}
}
@Test
public void testEncryptDecrypt() throws Exception {
String passwd = "test 123";
JCPPTest keyHolder = new JCPPTest();
EncryptCommand ec = new EncryptCommand(keyHolder);
OptionsAndArgs oaa = new OptionsAndArgs(CommandDispatcher.getAvailableCommands(),"encrypt", passwd);
PrintStream original = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));
ec.execute(oaa, null, null);
System.setOut(original);
Matcher matcher = Pattern.compile("^\\[\\[(.*)]]").matcher(baos.toString());
matcher.find();
String encrypted = matcher.group(1);
JolokiaCipher jolokiaCipher = new JolokiaCipher(keyHolder);
String decrypted = jolokiaCipher.decrypt(encrypted);
assertEquals(decrypted,passwd);
}
}