package io.ebean;
import io.ebean.RawSql;
import org.junit.Test;
import java.util.Arrays;
import static org.assertj.core.api.StrictAssertions.assertThat;
public class ColumnMappingTest {
RawSql.ColumnMapping.Column col(int indexPos, String dbColumn, String dbAlias) {
return new RawSql.ColumnMapping.Column(indexPos, dbColumn, dbAlias);
}
RawSql.ColumnMapping mapping(RawSql.ColumnMapping.Column... cols) {
return new RawSql.ColumnMapping(Arrays.asList(cols));
}
@Test
public void equals_same() {
RawSql.ColumnMapping mapping1 = mapping(col(1, "id", null), col(2, "name", null));
RawSql.ColumnMapping mapping2 = mapping(col(1, "id", null), col(2, "name", null));
assertSame(mapping1, mapping2);
}
@Test
public void equals_diffPropertyName() {
RawSql.ColumnMapping mapping1 = mapping(col(1, "id", null), col(2, "name", null));
RawSql.ColumnMapping mapping2 = mapping(col(1, "id", null), col(2, "diff", null));
assertDifferent(mapping1, mapping2);
}
@Test
public void equals_moreColumns() {
RawSql.ColumnMapping mapping1 = mapping(col(1, "id", null), col(2, "name", null));
RawSql.ColumnMapping mapping2 = mapping(col(1, "id", null), col(2, "name", null), col(2, "diff", null));
assertDifferent(mapping1, mapping2);
}
@Test
public void equals_lessColumns() {
RawSql.ColumnMapping mapping1 = mapping(col(1, "id", null), col(2, "name", null));
RawSql.ColumnMapping mapping2 = mapping(col(1, "id", null));
assertDifferent(mapping1, mapping2);
}
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());
}
}