### Question:
SystemPropertiesConfig implements Config { @Override public Path getOutputDir() { String outputDir = p.getProperty(OUTPUT_DIR); if (outputDir != null) { return Paths.get(outputDir); } return getInputDir(); } SystemPropertiesConfig(Properties p); boolean isFullyConfigured(); @Override int getBytecodeVersion(); @Override boolean isDefaultMethodsEnabled(); @Override Path getInputDir(); @Override Path getOutputDir(); @Override List<Path> getClasspath(); @Override List<Path> getIncludedFiles(); @Override boolean isJavacHacksEnabled(); @Override boolean isQuiet(); String getHelp();  }### Answer:
@Test public void output_directory() { systemProperties.setProperty(RetrolambdaApi.INPUT_DIR, "input dir"); assertThat("defaults to input dir", config().getOutputDir(), is(Paths.get("input dir"))); systemProperties.setProperty(RetrolambdaApi.OUTPUT_DIR, "output dir"); assertThat("can override the default", config().getOutputDir(), is(Paths.get("output dir"))); }