|
7 | 7 | import com.fasterxml.jackson.databind.ObjectMapper; |
8 | 8 | import com.fasterxml.jackson.databind.node.MissingNode; |
9 | 9 | import com.fasterxml.jackson.databind.node.NullNode; |
| 10 | +import org.hamcrest.collection.IsMapContaining; |
10 | 11 | import org.junit.Before; |
11 | 12 | import org.junit.Rule; |
12 | 13 | import org.junit.Test; |
@@ -203,6 +204,36 @@ public void shouldThrowIfListClassMismatch() throws Exception { |
203 | 204 | claim.asList(UserPojo.class); |
204 | 205 | } |
205 | 206 |
|
| 207 | + @Test |
| 208 | + public void shouldGetMapValue() throws Exception { |
| 209 | + Map<String, Object> map = new HashMap<>(); |
| 210 | + map.put("text", "extraValue"); |
| 211 | + map.put("number", 12); |
| 212 | + map.put("boolean", true); |
| 213 | + map.put("object", Collections.singletonMap("something", "else")); |
| 214 | + |
| 215 | + JsonNode value = mapper.valueToTree(map); |
| 216 | + Claim claim = claimFromNode(value); |
| 217 | + |
| 218 | + assertThat(claim, is(notNullValue())); |
| 219 | + Map<String, Object> backMap = claim.asMap(); |
| 220 | + assertThat(backMap, is(notNullValue())); |
| 221 | + assertThat(backMap, hasEntry("text", (Object) "extraValue")); |
| 222 | + assertThat(backMap, hasEntry("number", (Object) 12)); |
| 223 | + assertThat(backMap, hasEntry("boolean", (Object) true)); |
| 224 | + assertThat(backMap, hasKey("object")); |
| 225 | + assertThat((Map<String, Object>) backMap.get("object"), IsMapContaining.hasEntry("something", (Object) "else")); |
| 226 | + } |
| 227 | + |
| 228 | + @Test |
| 229 | + public void shouldThrowIfMapClassMismatch() throws Exception { |
| 230 | + JsonNode value = mapper.valueToTree("text node"); |
| 231 | + Claim claim = claimFromNode(value); |
| 232 | + |
| 233 | + exception.expect(JWTDecodeException.class); |
| 234 | + claim.asMap(); |
| 235 | + } |
| 236 | + |
206 | 237 | @Test |
207 | 238 | public void shouldGetCustomClassValue() throws Exception { |
208 | 239 | JsonNode value = mapper.valueToTree(new UserPojo("john", 123)); |
|
0 commit comments