### Question:
DefaultWot implements Wot { @Override public ExposedThing produce(Thing thing) throws WotException { ExposedThing exposedThing = new ExposedThing(servient, thing); if (servient.addThing(exposedThing)) { return exposedThing; } else { throw new WotException("Thing already exists: " + thing.getId()); } } DefaultWot(Servient servient);  DefaultWot();  DefaultWot(Config config); @Override String toString(); static Wot clientOnly(); static Wot clientOnly(Config config); static Wot serverOnly(); static Wot serverOnly(Config config); @Override Observable<Thing> discover(ThingFilter filter); @Override Observable<Thing> discover(); @Override ExposedThing produce(Thing thing); @Override ConsumedThing consume(Thing thing); @Override ConsumedThing consume(String thing); @Override CompletableFuture<Thing> fetch(URI url); @Override CompletableFuture<Thing> fetch(String url); @Override CompletableFuture<Void> destroy();  }### Answer:
@Test public void produceShouldCallUnderlyingServient() throws WotException { when(servient.addThing(any())).thenReturn(true); DefaultWot wot = new DefaultWot(servient); wot.produce(thing); verify(servient).addThing(any()); }