@Override public String toString() { if (toStringCache == null) { toStringCache = type.getName() + "/" + subType.getFacet().getRegistrationTreeName().map(tree -> tree + ".").orElse("") + subType.getName() + subType.getSuffix().map(suffix -> "+" + suffix).orElse("") + parameters.entrySet().stream().map(entry -> ";" + entry.getKey() + "=" + entry.getValue()) .collect(Collectors.joining()); } return toStringCache; } }
@Override public String toString() { if (toStringCache == null) { toStringCache = subType.getFacet().getRegistrationTreeName().map(tree -> tree + ".").orElse("") + subType.getName() + subType.getSuffix().map(suffix -> "+" + suffix).orElse(""); } return toStringCache; } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final SubType subType = (SubType) o; if (getFacet() != subType.getFacet()) return false; //noinspection SimplifiableIfStatement if (!getName().equals(subType.getName())) return false; return getSuffix().equals(subType.getSuffix()); }
@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(); }
@Override public int hashCode() { int result = getFacet().hashCode(); result = 122949829 * result + getName().hashCode(); result = 122949829 * result + getSuffix().hashCode(); return result; } }
@Test public void test_subtype_parser_does_parse_valid_subtype_in_the_vendor_facet_with_a_suffix () throws ParserFailure { Optional<SubType> oResult = MimeTypeParser.subTypeParser.tryParse("vnd.nike.runningcoach-v3.1+json"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get().getFacet()).isNotNull(); assertThat(oResult.get().getFacet()).isEqualTo(Facet.VENDOR); assertThat(oResult.get().getSuffix()).isNotNull(); assertThat(oResult.get().getSuffix().get()).isNotNull(); assertThat(oResult.get().getSuffix().get()).isEqualTo("json"); assertThat(oResult.get().getName()).isNotNull(); assertThat(oResult.get().getName()).isEqualTo("nike.runningcoach-v3.1"); }
@Test public void test_subtype_parser_does_parse_valid_subtype_in_the_standard_facet_without_a_suffix () throws ParserFailure { Optional<SubType> oResult = MimeTypeParser.subTypeParser.tryParse("json"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get().getFacet()).isNotNull(); assertThat(oResult.get().getFacet()).isEqualTo(Facet.STANDARD); assertThat(oResult.get().getSuffix()).isNotNull(); assertThat(oResult.get().getSuffix()).isEqualTo(Optional.empty()); assertThat(oResult.get().getName()).isNotNull(); assertThat(oResult.get().getName()).isEqualTo("json"); }
@Test public void test_subtype_parser_does_parse_valid_subtype_in_the_vendor_facet_without_a_suffix () throws ParserFailure { Optional<SubType> oResult = MimeTypeParser.subTypeParser.tryParse("vnd.json"); assertThat(oResult.isPresent()).isTrue(); assertThat(oResult.get().getFacet()).isNotNull(); assertThat(oResult.get().getFacet()).isEqualTo(Facet.VENDOR); assertThat(oResult.get().getSuffix()).isNotNull(); assertThat(oResult.get().getSuffix()).isEqualTo(Optional.empty()); assertThat(oResult.get().getName()).isNotNull(); assertThat(oResult.get().getName()).isEqualTo("json"); }