|
1 | 1 | package org.tests.query; |
2 | 2 |
|
| 3 | +import io.ebean.test.LoggedSql; |
3 | 4 | import io.ebean.xtest.BaseTestCase; |
4 | 5 | import io.ebean.DB; |
5 | 6 | import io.ebean.Query; |
|
9 | 10 |
|
10 | 11 | import java.util.List; |
11 | 12 |
|
12 | | -import static org.junit.jupiter.api.Assertions.assertFalse; |
13 | | -import static org.junit.jupiter.api.Assertions.assertTrue; |
| 13 | +import static org.assertj.core.api.Assertions.assertThat; |
14 | 14 |
|
15 | | -public class TestQueryMultiManyOrder extends BaseTestCase { |
| 15 | +class TestQueryMultiManyOrder extends BaseTestCase { |
16 | 16 |
|
17 | 17 | @Test |
18 | | - public void test() { |
19 | | - |
| 18 | + void test() { |
20 | 19 | ResetBasicData.reset(); |
| 20 | + LoggedSql.start(); |
21 | 21 |
|
22 | | - Query<Order> q = DB.find(Order.class).fetch("shipments").fetch("details") |
23 | | - .fetch("details.product").fetch("customer").where().gt("id", 0).query(); |
| 22 | + Query<Order> q = DB.find(Order.class) |
| 23 | + .fetch("shipments") |
| 24 | + .fetch("details") |
| 25 | + .fetch("details.product") |
| 26 | + .fetch("customer") |
| 27 | + .where().gt("id", 0).query(); |
24 | 28 |
|
25 | 29 | List<Order> list = q.findList(); |
26 | | - String sql = q.getGeneratedSql(); |
27 | | - |
28 | | - assertTrue(!list.isEmpty()); |
29 | | - assertTrue(sql.contains("join o_customer ")); |
30 | | - |
31 | | - assertFalse(sql.contains("left join contact ")); |
32 | | - assertFalse(sql.contains("left join o_order_detail ")); |
33 | | - assertFalse(sql.contains("left join o_product ")); |
| 30 | + assertThat(list).isNotEmpty(); |
34 | 31 |
|
| 32 | + List<String> sql = LoggedSql.stop(); |
| 33 | + assertThat(sql).hasSize(2); |
| 34 | + assertThat(sql.get(0)).contains("from o_order t0 join o_customer t1 on t1.id = t0.kcustomer_id left join or_order_ship t2 on t2.order_id = t0.id where"); |
| 35 | + assertThat(sql.get(1)).contains("from o_order_detail t0 left join o_product t1 on t1.id = t0.product_id"); |
35 | 36 | } |
36 | 37 | } |
0 commit comments