package io.ebean; import io.ebean.RawSql; import org.junit.Test; import static org.assertj.core.api.StrictAssertions.assertThat; public class ColumnTest { RawSql.ColumnMapping.Column col(int indexPos, String dbColumn, String dbAlias) { return new RawSql.ColumnMapping.Column(indexPos, dbColumn, dbAlias); } @Test public void equals_when_same() { assertSame(col(1, "name", null), col(1, "name", null)); } @Test public void equals_when_same_withAlias() { assertSame(col(1, "t0.name", "t0"), col(1, "t0.name", "t0")); } @Test public void equals_when_diffIndex() { assertDifferent(col(1, "name", null), col(2, "name", null)); } @Test public void equals_when_diffProperty() { assertDifferent(col(1, "name", null), col(1, "diffName", null)); } @Test public void equals_when_diffAlias() { assertDifferent(col(1, "t1.name", "t1"), col(1, "t1.name", "t0")); } @Test public void equals_when_diffAliasNullLast() { assertDifferent(col(1, "t1.name", "t1"), col(1, "t1.name", null)); } @Test public void equals_when_diffAliasNullFirst() { assertDifferent(col(1, "t1.name", null), col(1, "t1.name", "t1")); } private void assertSame(Object key, Object key1) { assertThat(key).isEqualTo(key1); assertThat(key.hashCode()).isEqualTo(key1.hashCode()); } private void assertDifferent(Object key, Object key1) { assertThat(key).isNotEqualTo(key1); assertThat(key.hashCode()).isNotEqualTo(key1.hashCode()); } }