package io.robe.hibernate.criteria.api.criteria.projection;
import io.robe.hibernate.criteria.api.projection.*;
import static org.junit.Assert.*;
import org.junit.Test;
/**
* Created by kamilbukum on 18/01/2017.
*/
public class ProjectionsTest {
@Test
public void property() throws Exception {
PropertyProjection expectedProjection = new PropertyProjection("name", false);
Projection projection = Projections.property("name");
assertEquals(expectedProjection, projection);
}
@Test
public void groupProperty() throws Exception {
PropertyProjection expectedProjection = new PropertyProjection("name", true);
Projection projection = Projections.groupProperty("name");
assertEquals(expectedProjection, projection);
}
@Test
public void id() throws Exception {
IdentifierProjection expectedProjection = new IdentifierProjection();
Projection projection = Projections.id();
assertEquals(expectedProjection, projection);
}
@Test
public void projectionList() throws Exception {
ProjectionList expectedProjection = Projections.projectionList();
PropertyProjection p1 = new PropertyProjection("name", true);
PropertyProjection p2 = new PropertyProjection("name", false);
expectedProjection.add(p1).add(p2);
Projection projection = Projections.projectionList().add(p1).add(p2);
assertEquals(expectedProjection, projection);
}
@Test
public void rowCount() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection(null, FunctionProjection.Type.COUNT);
Projection projection = Projections.rowCount();
assertEquals(expectedProjection, projection);
}
@Test
public void count() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection("name", FunctionProjection.Type.COUNT);
Projection projection = Projections.count("name");
assertEquals(expectedProjection, projection);
}
@Test
public void max() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection("age", FunctionProjection.Type.MAX);
Projection projection = Projections.max("age");
assertEquals(expectedProjection, projection);
}
@Test
public void min() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection("age", FunctionProjection.Type.MIN);
Projection projection = Projections.min("age");
assertEquals(expectedProjection, projection);
}
@Test
public void avg() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection("age", FunctionProjection.Type.AVG);
Projection projection = Projections.avg("age");
assertEquals(expectedProjection, projection);
}
@Test
public void sum() throws Exception {
FunctionProjection expectedProjection = new FunctionProjection("age", FunctionProjection.Type.SUM);
Projection projection = Projections.sum("age");
assertEquals(expectedProjection, projection);
}
@Test
public void alias() throws Exception {
Projection p = new PropertyProjection("name", false);
EnhancedProjection expectedProjection = new EnhancedProjection(p, "nameProjectionAlias");
Projection projection = Projections.alias(p, "nameProjectionAlias");
assertEquals(expectedProjection, projection);
}
}