### Question:
ElementName implements Serializable, Comparable<ElementName> { @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final ElementName other = (ElementName) obj; if (this.name == null) { if (other.name != null) { return false; } } else if (!this.name.equals(other.name)) { return false; } return true; } ElementName(final String name);  ElementName(final String name, final boolean intern);  ElementName(final Class<?> clazz); static ElementName fromString(final String clazz); static ElementName fromClass(final Class<?> clazz); String asJavaName(); String asInternalName(); ElementName getNameWithoutPackage(); ElementName getParent(); ElementName withoutPrefixChars(final int prefixLength); ElementName withoutSuffixChars(final int suffixLength); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); int compareTo(final ElementName o);  }### Answer:
@Test public void shouldTreatSameClassNameAsEqual() { final ElementName left = new ElementName("com/foo/bar"); final ElementName right = new ElementName("com.foo.bar"); assertThat(left.equals(right)).isTrue(); assertThat(right.equals(left)).isTrue(); }