@Test
  public void testScriptBuildPhase() throws NoSuchBuildTargetException {
    NewNativeTargetProjectMutator mutator = mutatorWithCommonDefaults();

    TargetNode<?> prebuildNode =
        XcodePrebuildScriptBuilder.createBuilder(BuildTargetFactory.newInstance("//foo:script"))
            .setSrcs(ImmutableSortedSet.<SourcePath>of(new FakeSourcePath("script/input.png")))
            .setOutputs(ImmutableSortedSet.of("helloworld.txt"))
            .setCmd("echo \"hello world!\"")
            .build();

    mutator.setPostBuildRunScriptPhasesFromTargetNodes(
        ImmutableList.<TargetNode<?>>of(prebuildNode));
    NewNativeTargetProjectMutator.Result result =
        mutator.buildTargetAndAddToProject(generatedProject);

    PBXShellScriptBuildPhase phase =
        getSingletonPhaseByType(result.target, PBXShellScriptBuildPhase.class);
    assertThat(
        "Should set input paths correctly",
        "../script/input.png",
        is(equalTo(Iterables.getOnlyElement(phase.getInputPaths()))));
    assertThat(
        "Should set output paths correctly",
        "helloworld.txt",
        is(equalTo(Iterables.getOnlyElement(phase.getOutputPaths()))));
    assertEquals("should set script correctly", "echo \"hello world!\"", phase.getShellScript());
  }