package com.orientechnologies.orient.stresstest;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.*;
public class OStressTesterCommandLineParserTest {
@Test public void testCommandLineArgs() throws Exception {
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(String.format(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_INVALID_OPTION, "")));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-i foo" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(String.format(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_EXPECTED_VALUE, "-i foo")));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-i" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(String.format(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_EXPECTED_VALUE, "-i")));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-c", "10", "-n" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(String.format(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_EXPECTED_VALUE, "-n")));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-m", "foo" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(String.format(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_INVALID_MODE, "foo")));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-m", "remote" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_MISSING_REMOTE_IP));
}
try {
OStressTesterCommandLineParser.getStressTester(new String[] { "-tx", "10" });
fail();
} catch (Exception ex) {
assertTrue(ex.getMessage().contains(OStressTesterCommandLineParser.COMMAND_LINE_PARSER_MODE_PARAM_MANDATORY));
}
OStressTester stressTester = OStressTesterCommandLineParser
.getStressTester(new String[] { "--root-password", "foo", "-m", "plocal" });
assertEquals("foo", stressTester.getPassword());
assertEquals(OStressTester.OMode.PLOCAL, stressTester.getDatabaseIdentifier().getMode());
assertNull(stressTester.getDatabaseIdentifier().getPlocalPath());
stressTester = OStressTesterCommandLineParser.getStressTester(new String[] { "-m", "memory", "--root-password", "foo" });
assertEquals("foo", stressTester.getPassword());
assertEquals(OStressTester.OMode.MEMORY, stressTester.getDatabaseIdentifier().getMode());
stressTester = OStressTesterCommandLineParser
.getStressTester(new String[] { "-c", "4", "--root-password", "foo", "-m", "plocal" });
assertEquals(4, stressTester.getThreadsNumber());
assertNull(stressTester.getDatabaseIdentifier().getRemoteIp());
assertEquals(2424, stressTester.getDatabaseIdentifier().getRemotePort());
stressTester = OStressTesterCommandLineParser
.getStressTester(new String[] { "-m", "remote", "--remote-ip", "127.0.0.1", "--root-password", "foo" });
assertEquals("foo", stressTester.getPassword());
assertEquals("127.0.0.1", stressTester.getDatabaseIdentifier().getRemoteIp());
assertEquals(2424, stressTester.getDatabaseIdentifier().getRemotePort());
stressTester = OStressTesterCommandLineParser.getStressTester(
new String[] { "-m", "remote", "--remote-ip", "127.0.0.1", "--root-password", "foo", "--remote-port", "1025" });
assertEquals("foo", stressTester.getPassword());
assertEquals("127.0.0.1", stressTester.getDatabaseIdentifier().getRemoteIp());
assertEquals(1025, stressTester.getDatabaseIdentifier().getRemotePort());
String tmpDir = System.getProperty("java.io.tmpdir");
if (tmpDir.endsWith(File.separator)) {
tmpDir = tmpDir.substring(0, tmpDir.length() - File.separator.length());
}
stressTester = OStressTesterCommandLineParser
.getStressTester(new String[] { "-c", "4", "-m", "plocal", "--root-password", "foo", "-d", tmpDir });
assertEquals(4, stressTester.getThreadsNumber());
assertEquals(OStressTester.OMode.PLOCAL, stressTester.getMode());
assertEquals("foo", stressTester.getPassword());
assertEquals(tmpDir, stressTester.getDatabaseIdentifier().getPlocalPath());
stressTester = OStressTesterCommandLineParser.getStressTester(
new String[] { "-c", "4", "-m", "plocal", "--root-password", "foo", "-tx", "12", "-d", tmpDir + File.separator });
assertEquals(4, stressTester.getThreadsNumber());
assertEquals(OStressTester.OMode.PLOCAL, stressTester.getMode());
assertEquals("foo", stressTester.getPassword());
assertEquals(12, stressTester.getTransactionsNumber());
assertEquals(tmpDir, stressTester.getDatabaseIdentifier().getPlocalPath());
stressTester = OStressTesterCommandLineParser
.getStressTester(new String[] { "-c", "4", "-m", "plocal", "-w", "crud:c1r1u1d1", "--root-password", "foo" });
assertEquals(4, stressTester.getThreadsNumber());
assertEquals(OStressTester.OMode.PLOCAL, stressTester.getMode());
assertEquals("foo", stressTester.getPassword());
// TODO: add tests for checking value of creates/reads to check the remotion of iteration had no impact
}
}