@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final MimeType mimeType = (MimeType) o; if (!getType().equals(mimeType.getType())) return false; //noinspection SimplifiableIfStatement if (!getSubType().equals(mimeType.getSubType())) return false; return getParameters().equals(mimeType.getParameters()); }
/** * Creates a MimeType instance with the given type and sub-type values. * * @param type * the type to assign to the mimetype * @param subType * the subtype to assign to the mimetype * * @return a MimeType instance with the given type, sub-type, and an empty parameters map. */ public static MimeType of(final Type type, final SubType subType) { return of(type, subType, new HashMap<>()); }
/** * Creates a MimeType instance with the given type, sub-type, and parameters values. * * @param type * the type to assign to the mimetype * @param subType * the subtype to assign to the mimetype * @param parameters * the parameters to assign to the mimetype * * @return a MimeType instance with the given type, sub-type, and an empty parameters map. */ public static MimeType of(final Type type, final SubType subType, final Map<String, String> parameters) { return new MimeType(type, subType, parameters); }
@Test public void test_mimetype_parser_does_parse_valid_mimetype_in_the_standard_facet_without_a_suffix () throws ParserFailure { Optional<MimeType> oResult; MimeType mime; oResult = MimeTypeParser.parse("application/json"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get()).isNotNull(); mime = oResult.get(); assertThat(mime.getType()).isEqualTo(MimeType.Type.APPLICATION); assertThat(mime.getSubType().getName()).isEqualTo("json"); }
@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 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 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()); }
@Override public int hashCode() { int result = getType().hashCode(); result = 67867979 * result + getSubType().hashCode(); result = 67867979 * result + getParameters().hashCode(); return result; }
MimeType givenMimeType = MimeType.of(givenType, givenSubType, Collections.emptyMap());
@Test public void test_mimetype_parser_does_parse_valid_mimetype_in_the_standard_facet_without_a_suffix_and_two_parameters () throws ParserFailure { Optional<MimeType> oResult; MimeType mime; oResult = MimeTypeParser.parse("application/json; param1=one; param2=two"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get()).isNotNull(); mime = oResult.get(); assertThat(mime.getType()).isEqualTo(MimeType.Type.APPLICATION); assertThat(mime.getSubType().getName()).isEqualTo("json"); assertThat(mime.getParameters()).isNotNull(); assertThat(mime.getParameters()).isNotEmpty(); assertThat(mime.getParameters().size()).isEqualTo(2); assertThat(mime.getParameters().get("param1")).isNotNull(); assertThat(mime.getParameters().get("param1")).isEqualTo("one"); assertThat(mime.getParameters().get("param2")).isNotNull(); assertThat(mime.getParameters().get("param2")).isEqualTo("two"); }
@Test public void test_mimetype_parser_does_parse_valid_mimetype_in_the_vendor_facet_with_a_json_suffix_and_one_parameter () throws ParserFailure { Optional<MimeType> oResult; MimeType mime; oResult = MimeTypeParser.parse("application/vnd.nike.runningcoach-v3.1+json;charset=UTF-8"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get()).isNotNull(); mime = oResult.get(); assertThat(mime.getType()).isEqualTo(MimeType.Type.APPLICATION); assertThat(mime.getSubType().getName()).isEqualTo("nike.runningcoach-v3.1"); assertThat(mime.getSubType().getFacet()).isEqualTo(MimeType.Facet.VENDOR); assertThat(mime.getSubType().getSuffix()).isNotNull(); assertThat(mime.getSubType().getSuffix().get()).isNotNull(); assertThat(mime.getSubType().getSuffix().get()).isEqualTo("json"); assertThat(mime.getParameters()).isNotNull(); assertThat(mime.getParameters()).isNotEmpty(); assertThat(mime.getParameters().get("charset")).isNotNull(); assertThat(mime.getParameters().get("charset")).isEqualTo("UTF-8"); }
@Test public void test_mimetype_parser_does_parse_valid_mimetype_in_the_vendor_facet_with_a_json_suffix () throws ParserFailure { Optional<MimeType> oResult; MimeType mime; oResult = MimeTypeParser.parse("application/vnd.nike.runningcoach-v3.1+json"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get()).isNotNull(); mime = oResult.get(); assertThat(mime.getType()).isEqualTo(MimeType.Type.APPLICATION); assertThat(mime.getSubType().getName()).isEqualTo("nike.runningcoach-v3.1"); assertThat(mime.getSubType().getFacet()).isEqualTo(MimeType.Facet.VENDOR); assertThat(mime.getSubType().getSuffix()).isNotNull(); assertThat(mime.getSubType().getSuffix().get()).isNotNull(); assertThat(mime.getSubType().getSuffix().get()).isEqualTo("json"); assertThat(mime.getParameters()).isNotNull(); assertThat(mime.getParameters()).isEmpty(); }