### Question:
PayloadImpl implements Payload, Serializable { @Override public Claim getClaim(String name) { return extractClaim(name, tree, objectReader); } PayloadImpl(String issuer, String subject, List<String> audience, Date expiresAt, Date notBefore, Date issuedAt, String jwtId, Map<String, JsonNode> tree, ObjectReader objectReader); @Override String getIssuer(); @Override String getSubject(); @Override List<String> getAudience(); @Override Date getExpiresAt(); @Override Date getNotBefore(); @Override Date getIssuedAt(); @Override String getId(); @Override Claim getClaim(String name); @Override Map<String, Claim> getClaims();  }### Answer:
@Test public void shouldGetExtraClaim() throws Exception { assertThat(payload, is(notNullValue())); assertThat(payload.getClaim("extraClaim"), is(instanceOf(JsonNodeClaim.class))); assertThat(payload.getClaim("extraClaim").asString(), is("extraValue")); }
@Test public void shouldGetNotNullExtraClaimIfMissing() throws Exception { PayloadImpl payload = new PayloadImpl(null, null, null, null, null, null, null, null, objectReader); assertThat(payload, is(notNullValue())); assertThat(payload.getClaim("missing"), is(notNullValue())); assertThat(payload.getClaim("missing"), is(instanceOf(NullClaim.class))); }