### Question:
ThingAgent implements ThingService { @Override public IFuture<JadexContent> readProperty(String name) { ExposedThingProperty<Object> property = thing.getProperty(name); CompletableFuture<JadexContent> result = property.read().thenApply(value -> { try { Content content = ContentManager.valueToContent(value, ContentManager.DEFAULT); return new JadexContent(content); } catch (ContentCodecException e) { log.warn("Unable to read property", e); return null; } }); return FutureConverters.toJadex(result); } ThingAgent();   ThingAgent(IInternalAccess agent, ExposedThing thing); @AgentCreated IFuture<Void> created(); @AgentKilled void killed(); @Override IFuture<String> get(); @Override IFuture<JadexContent> readProperties(); @Override IFuture<JadexContent> readProperty(String name); @Override IFuture<JadexContent> writeProperty(String name, JadexContent content); @Override String getThingServiceId();  }### Answer:
@Test public void readPropertyShouldReturnValueOfGivenProperty() { when(thing.getProperty("count")).thenReturn(property); when(property.read()).thenReturn(completedFuture(null)); ThingAgent agent = new ThingAgent(ia, thing); agent.readProperty("count"); verify(property, timeout(1 * 1000L)).read(); }