### Question:
RestRemoteMole implements Mole { @Override public Mono<MissionRepresentation> representationOf(Mission mission) { return clientUtils.mono(MoleWebApi.missionRepresentationUrl(mission.name()), MissionRepresentationDto.class) .map(MissionRepresentationDto::toMissionRepresentation); } RestRemoteMole(String baseUrl); @Override Flux<AgencyState> states(); @Override Mono<MissionRepresentation> representationOf(Mission mission); @Override Mono<MissionParameterDescription> parameterDescriptionOf(Mission mission); @Override Flux<MissionState> statesFor(MissionHandle handle); @Override Flux<MissionOutput> outputsFor(MissionHandle handle); @Override Flux<MissionRepresentation> representationsFor(MissionHandle handle); @Override Mono<MissionHandle> instantiate(Mission mission, Map<String, Object> params); @Override void instruct(MissionHandle handle, Strand strand, StrandCommand command); @Override void instructRoot(MissionHandle handle, StrandCommand command); @Override void instructBlock(MissionHandle handle, String blockId, BlockCommand command); @Override void instruct(final MissionHandle handle, final MissionCommand command);  }### Answer:
@Test public void representationOf() { RestRemoteMole remoteMole = new RestRemoteMole(baseUrl); Mono<MissionRepresentation> rep = remoteMole.representationOf(new Mission("Linear Mission")); assertThat(rep.block().parentsToChildren().isEmpty()).isTrue(); }
@Ignore @Test(expected = IllegalArgumentException.class) public void representationOfReturnsError() { RestRemoteMole remoteMole = new RestRemoteMole(baseUrl); when(mole.representationOf(any())).thenThrow(new IllegalArgumentException("the mole is returning an error")); remoteMole.representationOf(new Mission("Linear Mission")); }