package com.badoo.barf.data.repo; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class BaseRepoTest { @Test public void assertQueryOverridesEqualsAndHashcodeWithBothDefined() { assertThat(BaseRepository.assertQueryOverridesEqualsAndHashcode(WithEqAndHashCode.class), is(true)); } @Test public void assertQueryOverridesEqualsAndHashcodeWithEqDefined() { assertThat(BaseRepository.assertQueryOverridesEqualsAndHashcode(WithoutEq.class), is(false)); } @Test public void assertQueryOverridesEqualsAndHashcodeWithHashCodeDefined() { assertThat(BaseRepository.assertQueryOverridesEqualsAndHashcode(WithoutHashCode.class), is(false)); } @Test public void assertQueryOverridesEqualsAndHashcodeWithNeitherDefined() { assertThat(BaseRepository.assertQueryOverridesEqualsAndHashcode(WithoutEqAndHashCode.class), is(false)); } private final class WithEqAndHashCode { @Override public boolean equals(Object o) { return super.equals(o); } @Override public int hashCode() { return super.hashCode(); } } private final class WithoutEq { @Override public int hashCode() { return super.hashCode(); } } private final class WithoutHashCode { @Override public boolean equals(Object o) { return super.equals(o); } } private final class WithoutEqAndHashCode {} }