@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()); }
@Override public int hashCode() { int result = getType().hashCode(); result = 67867979 * result + getSubType().hashCode(); result = 67867979 * result + getParameters().hashCode(); return result; }
@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_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(); }