EntityTag { public boolean strongCompareTo(final EntityTag otherEntityTag) { if (isWeak()) { return false; } if (otherEntityTag.isWeak()) { return false; } return equals(otherEntityTag); } private  EntityTag(final boolean weak, final String opaqueTag); static boolean isValid(@Nullable final CharSequence entityTag); String getOpaqueTag(); boolean isWeak(); boolean strongCompareTo(final EntityTag otherEntityTag); boolean weakCompareTo(final EntityTag otherEntityTag); static EntityTag fromString(final String entityTag); static Optional<EntityTag> fromEntity(@Nullable final Object entity); static EntityTag strong(final String opaqueTag); static EntityTag weak(final String opaqueTag); @Override String toString(); @Override boolean equals(@Nullable final Object o); @Override int hashCode();  }
@Test public void strongComparisonEvaluatesToFalseForEqualWeakTags() { softly.assertThat(WEAK_1.strongCompareTo(WEAK_1)).isFalse(); }
@Test public void strongComparisonEvaluatesToFalseForDifferentWeakTags() { softly.assertThat(WEAK_1.strongCompareTo(WEAK_2)).isFalse(); }
@Test public void strongComparisonEvaluatesToFalseForOneStrongTagWithSameValueThanWeakTag() { softly.assertThat(WEAK_1.strongCompareTo(STRONG_1)).isFalse(); }
@Test public void strongComparisonEvaluatesToFalseForDifferentStrongTags() { softly.assertThat(STRONG_1.strongCompareTo(STRONG_2)).isFalse(); }
@Test public void strongComparisonEvaluatesToTrueForEqualStrongTags() { softly.assertThat(STRONG_1.strongCompareTo(STRONG_1)).isTrue(); }