SVN implements SourceControl { Commandline buildInfoCommand(String path) throws CruiseControlException { Commandline command = new Commandline(); command.setExecutable("svn"); if (localWorkingCopy != null) { command.setWorkingDirectory(localWorkingCopy); } command.createArgument("info"); command.createArgument("--xml"); if (path != null) { command.createArgument(path); } LOG.debug("Executing command: " + command); return command; }  Map<String, String> getProperties(); void setProperty(String property); void setPropertyOnDelete(String propertyOnDelete); void setConfigDir(String configDir); void setCheckExternals(boolean value); void setRepositoryLocation(String repositoryLocation); void setLocalWorkingCopy(String localWorkingCopy); void setUsername(String userName); void setPassword(String password); void validate(); List<Modification> getModifications(final Date lastBuild, final Date now); static DateFormat getOutDateFormatter(); void setUseLocalRevision(boolean useLocalRevision);  }
@Test public void testBuildInfoCommand() throws CruiseControlException { svn.setLocalWorkingCopy("."); String[] expectedCmd = { "svn", "info", "--xml" }; String[] actualCmd = svn.buildInfoCommand(null).getCommandline(); assertThat(actualCmd, equalTo(expectedCmd)); expectedCmd = new String[] { "svn", "info", "--xml", "foo" }; actualCmd = svn.buildInfoCommand("foo").getCommandline(); assertThat(actualCmd, equalTo(expectedCmd)); }