### Question:
PipesBuilder implements Builder<Pipes> { public PipesBuilder withProgram(final String program) { this.program.set(program); return this; } PipesBuilder(); PipesBuilder withMap(final String map); PipesBuilder withReduce(final String reduce); PipesBuilder withInputformat(final String inputformat); PipesBuilder withPartitioner(final String partitioner); PipesBuilder withWriter(final String writer); PipesBuilder withProgram(final String program); @Override Pipes build();  }### Answer:
@Test public void testWithProgram() { final String program = "program"; final PipesBuilder builder = new PipesBuilder(); builder.withProgram(program); final Pipes pipes = builder.build(); assertEquals(program, pipes.getProgram()); }
@Test public void testWithProgramCalledTwiceThrows() { final String program1 = "program1"; final String program2 = "program2"; final PipesBuilder builder = new PipesBuilder(); builder.withProgram(program1); expectedException.expect(IllegalStateException.class); builder.withProgram(program2); }