Skip to content

Commit 833ba09

Browse files
committed
Add an executable test for new group by support
1 parent 880b742 commit 833ba09

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/test/java/examples/groupby/GroupByTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,34 @@ public void testBasicGroupByOrderByWithCalculatedColumnAndTableAlias() {
183183
session.close();
184184
}
185185
}
186+
187+
@Test
188+
public void testGroupByAfterWhere() {
189+
SqlSession session = sqlSessionFactory.openSession();
190+
try {
191+
GroupByMapper mapper = session.getMapper(GroupByMapper.class);
192+
193+
SelectStatementProvider selectStatement = select(lastName, count().as("count"))
194+
.from(person, "a")
195+
.where(gender, isEqualTo("Male"))
196+
.groupBy(lastName)
197+
.build()
198+
.render(RenderingStrategy.MYBATIS3);
199+
200+
String expected = "select a.last_name, count(*) as count from Person a where a.gender = #{parameters.p1,jdbcType=VARCHAR} group by a.last_name";
201+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
202+
203+
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);
204+
assertThat(rows.size()).isEqualTo(2);
205+
Map<String, Object> row = rows.get(0);
206+
assertThat(row.get("LAST_NAME")).isEqualTo("Flintstone");
207+
assertThat(row.get("COUNT")).isEqualTo(2L);
208+
209+
row = rows.get(1);
210+
assertThat(row.get("LAST_NAME")).isEqualTo("Rubble");
211+
assertThat(row.get("COUNT")).isEqualTo(2L);
212+
} finally {
213+
session.close();
214+
}
215+
}
186216
}

0 commit comments

Comments
 (0)