@Test public void testJsonOutputForMissingBuildTarget() throws BuildFileParseException, IOException, InterruptedException { // nonexistent target should not exist. SortedMap<String, TargetNode<?>> buildRules = buildTargetNodes(filesystem, "//:nonexistent"); targetsCommand.printJsonForTargets( params, executor, buildRules, ImmutableMap.<String, ShowOptions>of()); String output = console.getTextWrittenToStdOut(); assertEquals("[\n]\n", output); assertEquals( "unable to find rule for target //:nonexistent\n", console.getTextWrittenToStdErr()); }
@Test public void testJsonOutputForBuildTarget() throws IOException, BuildFileParseException, InterruptedException { // run `buck targets` on the build file and parse the observed JSON. SortedMap<String, TargetNode<?>> nodes = buildTargetNodes(filesystem, "//:test-library"); targetsCommand.printJsonForTargets( params, executor, nodes, ImmutableMap.<String, ShowOptions>of()); String observedOutput = console.getTextWrittenToStdOut(); JsonNode observed = objectMapper.readTree(objectMapper.getJsonFactory().createJsonParser(observedOutput)); // parse the expected JSON. String expectedJson = workspace.getFileContents("TargetsCommandTestBuckJson1.js"); JsonNode expected = objectMapper.readTree( objectMapper .getJsonFactory() .createJsonParser(expectedJson) .enable(Feature.ALLOW_COMMENTS)); assertEquals("Output from targets command should match expected JSON.", expected, observed); assertEquals("Nothing should be printed to stderr.", "", console.getTextWrittenToStdErr()); }