@Test public void shouldGetInnerMap() { final Map<String, ?> inner = singletonMap("key", "value"); final Map<String, ?> map = singletonMap("inner", inner); assertThat(jsonMapFrom(map).get("inner"), is(jsonMapFrom(inner))); }
@Test public void shouldGetNullForMissingString() { final Map<String, ?> map = singletonMap("key", null); assertThat(jsonMapFrom(map).getString("key"), is(nullValue())); assertThat(jsonMapFrom(map).getString("doesnotexist"), is(nullValue())); }
@Test public void shouldGetInstant() { final Instant instant = now(); final Map<String, ?> map = singletonMap("key", instant.toString()); assertThat(jsonMapFrom(map).getInstant("key"), is(instant)); } }
@Test public void shouldReturnNullIfInstantValueIsNotPresentAndNoDefaultSpecified() { final JsonMap empty = jsonMapFrom(new HashMap<String, Object>()); assertThat(empty.getInstant("key"), is(nullValue())); }
@Test public void shouldGetDate() { final Date date = new Date(); final Map<String, ?> map = singletonMap("key", date); assertThat(jsonMapFrom(map).getDate("key"), is(date)); }
@Test public void shouldReturnNullIfLongValueIsNotPresentAndNoDefaultSpecified() { final JsonMap empty = jsonMapFrom(new HashMap<String, Object>()); assertThat(empty.getLong("key"), is(nullValue())); }
@Test public void shouldFallbackOnDefaultString() { final JsonMap empty = jsonMapFrom(new HashMap<String, Object>()); assertThat(empty.getString("key", "default"), is("default")); }
@Test public void shouldGetStringFromDouble() { final Map<String, ?> map = singletonMap("key", 2.0d); assertThat(jsonMapFrom(map).getString("key"), is("2.0")); }
@Test public void shouldGetStringFromInteger() { final Map<String, ?> map = singletonMap("key", 1); assertThat(jsonMapFrom(map).getString("key"), is("1")); }
@Test public void shouldGetBooleanFromString() { final Map<String, ?> map = singletonMap("key", "true"); assertThat(jsonMapFrom(map).getBoolean("key"), is(TRUE)); }
@Test public void shouldGetString() { final Map<String, ?> map = singletonMap("key", "value"); assertThat(jsonMapFrom(map).getString("key"), is("value")); }
@Test public void shouldFallbackOnDefaultBoolean() { final JsonMap empty = jsonMapFrom(new HashMap<String, Object>()); assertThat(empty.getBoolean("key", TRUE), is(TRUE)); }
@Test public void shouldFallbackOnDefaultInt() { final JsonMap empty = jsonMapFrom(new HashMap<String, Object>()); assertThat(empty.getInt("key", 1), is(1)); }
@Test public void shouldGetLongFromString() { final Map<String, ?> map = singletonMap("key", "1"); assertThat(jsonMapFrom(map).getLong("key"), is(1L)); }
@Test public void shouldGetStringFromLong() { final Map<String, ?> map = singletonMap("key", 2L); assertThat(jsonMapFrom(map).getString("key"), is("2")); }
@Test public void shouldGetDouble() { final Map<String, ?> map = singletonMap("key", 2.0); assertThat(jsonMapFrom(map).getDouble("key"), is(2.0)); }
@Test public void shouldRemoveKeyFromInnerObject() { final Map<String, ?> map = singletonMap("key", new HashMap<String, String>() {{ put("removeMe", "hello world"); }}); final JsonMap jsonMap = jsonMapFrom(map); jsonMap.get("key").remove("removeMe"); assertThat(jsonMap, is(jsonMapFrom(singletonMap("key", emptyMap())))); }
@Test public void shouldGetDateFromProperStringFormat() { // 2012-04-23T18:25:43.511Z ISO 8601 final Map<String, ?> map = singletonMap("key", "2012-04-23T18:25:43.511Z"); assertThat(jsonMapFrom(map).getDate("key"), is(Date.from(LocalDateTime.of(2012, 4, 23, 18, 25, 43, 511000000).toInstant(UTC)))); }
@Test public void shouldGetStringFromBoolean() { final Map<String, ?> map = new HashMap<String, Boolean>() {{ put("somethingTrue", TRUE); put("somethingFalse", FALSE); }}; assertThat(jsonMapFrom(map).getString("somethingTrue"), is("true")); assertThat(jsonMapFrom(map).getString("somethingFalse"), is("false")); }
@Test public void shouldThrowExceptionWhenGettingDateFromWrongStringFormat() { final Map<String, ?> map = singletonMap("key", "Tue Jul 13 00:00:00"); assertThrows(DateTimeParseException.class, () -> { jsonMapFrom(map).getDate("key"); }); }