JcrNs implements JsonObjectConvertible, Comparable<JcrNs> { @Override public int hashCode() { return Objects.hash(getPrefix(), getUri()); }  @NotNull static JcrNs.JsonKeys keys(); String getPrefix(); void setPrefix(String prefix); String getUri(); void setUri(String uri); static @Nullable JcrNs fromJson(final @NotNull JsonObject json); static @NotNull JcrNs create(final @NotNull String prefix, final @NotNull String uri); @Override boolean equals(final Object o); @Override int hashCode(); @Override JsonObject toJson(); @Override String toString(); @Override int compareTo(final @NotNull JcrNs o);  }
@Test public void testHashCode() { final JcrNs base = JcrNs.create(prefix, uri); assertEquals("hash codes should be the same for same object", base.hashCode(), base.hashCode()); final JcrNs same = JcrNs.create(prefix, uri); assertEquals("hash codes should be the same for same params", base.hashCode(), same.hashCode()); final JcrNs diffUri = JcrNs.create(prefix, "http: assertNotEquals("hash codes should be diff for diff uri", base.hashCode(), diffUri.hashCode()); final JcrNs diffPrefix = JcrNs.create("foo1", uri); assertNotEquals("hash codes should be diff for diff prefix", base.hashCode(), diffPrefix.hashCode()); final JcrNs diffBoth = JcrNs.create("foo1", "http: assertNotEquals("hash codes should be diff for diff both", base.hashCode(), diffBoth.hashCode()); }