public class ToolNameTests {
@Test
public void names() {
try {
new ToolName(null, " ", false);
fail();
} catch (IllegalArgumentException e) {
assertThat(e, exception("tool name"));
}
assertToolName("/test", "test", new ToolName(null, " test ", false));
assertToolName("/test.1", "test.1", new ToolName(null, " test.1 ", false));
assertToolName("/test/xxx", "test/xxx", new ToolName(" ", " test/xxx ", false));
assertToolName("/prefix/test", "test", new ToolName(" prefix ", " test ", false));
assertToolName("/prefix/test.1", "test.1", new ToolName(" prefix ", " test.1 ", false));
assertToolName("/prefix/test/xxx", "test/xxx", new ToolName("prefix", " test/xxx ", false));
assertToolName("/prefix/test", "test", new ToolName(" prefix ", " /test ", true));
assertToolName("/prefix/test.1", "test.1", new ToolName(null, " /prefix/test.1 ", true));
assertToolName("/prefix/test/xxx", "xxx", new ToolName("/prefix", " test/xxx ", true));
}