@Test
@RunAsClient
public void testUpdate() {

    final Speaker search = new Speaker();
    search.setNameFirst("Charlie");
    search.setNameLast("Hunt");
    final Set<Speaker> speakers = this.getWebTarget("speaker/search").request(MediaType.APPLICATION_JSON_TYPE)
            .put(Entity.json(search))
            .readEntity(new GenericType<Set<Speaker>>() {
            });
    final Speaker found = speakers.iterator().next();
    final String id = found.getId();
    Assert.assertEquals("Oracle", found.getOrganization());
    found.setOrganization("Oracle Corporation");
    this.getWebTarget("speaker/update").request(MediaType.APPLICATION_JSON_TYPE)
            .put(Entity.json(found));
    final Speaker updated = this.getWebTarget("speaker/retrieve/{id}").resolveTemplate("id", id)
            .request(MediaType.APPLICATION_JSON_TYPE)
            .get()
            .readEntity(Speaker.class);
    Assert.assertEquals("Failed to update speaker", "Oracle Corporation", updated.getOrganization());
    this.log.info("Updated: " + updated.toString());
}