XcodeBuilder extends Builder implements Script { @Override public void validate() throws CruiseControlException { LOG.debug("super.validate()"); super.validate(); LOG.debug("validate directory"); directory.validate(); LOG.debug("validate args"); arguments.validate(); }  @Override Element build(Map<String, String> properties, Progress progressIn); @Override Element buildWithTarget(Map<String, String> properties, String target, Progress progress); @Override void validate(); Commandline buildCommandline(); int getExitCode(); void setExitCode(int result); void setDirectory(String path); Element getElementFromLine(String line); void setTimeout(long timeout); @Description("Pass specified argument to xcodebuild. The element has the required attribute: value.") Arg createArg();  }
@Test public void validateShouldCallDirectoryValidate() throws CruiseControlException { final Called validate = new Called(); builder.directory = new Directory() { @Override public void validate() { validate.called = true; } }; builder.validate(); assertTrue(validate.called); }