### Question:
SystemPropertiesConfig implements Config { @Override public List<Path> getClasspath() { String classpath = p.getProperty(CLASSPATH); if (classpath != null) { return parsePathList(classpath); } String classpathFile = p.getProperty(CLASSPATH_FILE); if (classpathFile != null) { return readPathList(Paths.get(classpathFile)); } throw new IllegalArgumentException("Missing required property: " + CLASSPATH); } 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 classpath() { systemProperties.setProperty(RetrolambdaApi.CLASSPATH, ""); assertThat("zero values", config().getClasspath(), is(empty())); systemProperties.setProperty(RetrolambdaApi.CLASSPATH, "one.jar"); assertThat("one value", config().getClasspath(), is(Arrays.asList(Paths.get("one.jar")))); systemProperties.setProperty(RetrolambdaApi.CLASSPATH, "one.jar" + File.pathSeparator + "two.jar"); assertThat("multiple values", config().getClasspath(), is(Arrays.asList(Paths.get("one.jar"), Paths.get("two.jar")))); }
@Test public void classpath_file() throws IOException { Path file = tempDir.newFile("classpath.txt").toPath(); Files.write(file, Arrays.asList("", "", "")); systemProperties.setProperty(RetrolambdaApi.CLASSPATH_FILE, file.toString()); assertThat("zero values", config().getClasspath(), is(empty())); Files.write(file, Arrays.asList("one.jar")); systemProperties.setProperty(RetrolambdaApi.CLASSPATH_FILE, file.toString()); assertThat("one value", config().getClasspath(), is(Arrays.asList(Paths.get("one.jar")))); Files.write(file, Arrays.asList("one.jar", "two.jar")); systemProperties.setProperty(RetrolambdaApi.CLASSPATH_FILE, file.toString()); assertThat("multiple values", config().getClasspath(), is(Arrays.asList(Paths.get("one.jar"), Paths.get("two.jar")))); }
@Test public void classpath_is_required() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Missing required property: retrolambda.classpath"); config().getClasspath(); }