private MediaRangeSubType mrSubType(String typeString) { if (MediaRange.WILDCARD_SUBTYPE.toString().equals(typeString)) return MediaRange.WILDCARD_SUBTYPE; MimeType.Facet facet = MimeType.Facet.STANDARD; if (typeString.startsWith(MimeType.Facet.VENDOR.getRegistrationTreeName().get())) facet = MimeType.Facet.VENDOR; Optional<String> suffix = Optional.empty(); if (typeString.endsWith("+json")) suffix = Optional.of("json"); return new MimeMediaRangeSubType(MimeType.SubType.of(facet, typeString, suffix)); }
@Test public void test_mimetype_to_string_works () { final Map<String,String> parameters = new HashMap<>(); parameters.put("key","value"); final MimeType complex = MimeType.of( MimeType.Type.EXAMPLE, MimeType.SubType.of(MimeType.Facet.PERSONAL, "niketest", Optional.of("json")), parameters ); assertThat(complex.toString()).isEqualTo("example/prs.niketest+json;key=value"); }
@Test public void toString_sets_and_uses_cache() { // given MimeMediaRangeSubType instance = new MimeMediaRangeSubType(MimeType.SubType.of("foo")); assertThat(getToStringCache(instance)).isNull(); // when String toStringVal = instance.toString(); // then assertThat(getToStringCache(instance)).isEqualTo(toStringVal); // and when String newCustomVal = UUID.randomUUID().toString(); Whitebox.setInternalState(instance, "toStringCache", newCustomVal); // then assertThat(instance.toString()).isEqualTo(newCustomVal); } }
Optional<String> givenSuffix = (suffixString == null || suffixString.isEmpty()) ? Optional.empty() : Optional.of(suffixString); SubType givenSubType = SubType.of(givenFacet, subTypeName, givenSuffix); MimeType givenMimeType = MimeType.of(givenType, givenSubType, Collections.emptyMap());
@Test public void test_mimetype_compares_two_indentical_instances_correctly () { final MimeType one = MimeType.of(MimeType.Type.APPLICATION, MimeType.SubType.of("json")); final MimeType two = MimeType.of(MimeType.Type.APPLICATION, MimeType.SubType.of("json")); assertThat(one).isEqualTo(two); assertThat(one.hashCode()).isEqualTo(two.hashCode()); }
@Test public void hashCode_equals_subtype_hashcode() { // given MimeType.SubType subtype = MimeType.SubType.of("foo"); MimeMediaRangeSubType instance = new MimeMediaRangeSubType(subtype); // expect assertThat(instance.hashCode()).isEqualTo(subtype.hashCode()); }
@Test public void equals_returns_true_for_same_instance() { // given MimeMediaRangeSubType instance = new MimeMediaRangeSubType(MimeType.SubType.of("foo")); // expect assertThat(instance.equals(instance)).isTrue(); }
@Test public void test_mimetype_compares_two_different_instances_correctly () { final MimeType one = MimeType.of(MimeType.Type.APPLICATION, MimeType.SubType.of("json")); final MimeType two = MimeType.of(MimeType.Type.APPLICATION, MimeType.SubType.of(MimeType.Facet.STANDARD, "schema", Optional.of("json"))); assertThat(one).isNotEqualTo(two); assertThat(one.hashCode()).isNotEqualTo(two.hashCode()); }