mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
90 lines
2.7 KiB
Java
90 lines
2.7 KiB
Java
package com.avaje.tests.text.json;
|
|
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import com.avaje.ebean.BaseTestCase;
|
|
import com.avaje.ebean.Ebean;
|
|
import com.avaje.ebean.text.PathProperties;
|
|
import com.avaje.ebean.text.json.JsonContext;
|
|
import com.avaje.ebean.text.json.JsonWriteOptions;
|
|
import com.avaje.tests.model.basic.Customer;
|
|
import com.avaje.tests.model.basic.ResetBasicData;
|
|
|
|
public class TestTextJsonReadManyLazyLoad extends BaseTestCase {
|
|
|
|
@Test
|
|
public void test_lazyLoadBoth() throws IOException {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
List<Customer> list = Ebean.find(Customer.class).select("id, status, shippingAddress").order()
|
|
.desc("id").findList();
|
|
|
|
JsonContext json = Ebean.createJsonContext();
|
|
|
|
// test that lazy loading on
|
|
PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))");
|
|
JsonWriteOptions o = new JsonWriteOptions();
|
|
o.setPathProperties(pp);
|
|
|
|
System.out.println("Expect lazy loading of Customer beans and customer contacts");
|
|
String s = json.toJsonString(list, o);
|
|
System.out.println(s);
|
|
Assert.assertTrue(s.contains("\"contacts\""));
|
|
Assert.assertTrue(s.contains("\"name\""));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void test_lazyLoadCust() throws IOException {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
List<Customer> list = Ebean.find(Customer.class).select("id, status, shippingAddress")
|
|
.fetch("contacts").order().desc("id").findList();
|
|
|
|
JsonContext json = Ebean.createJsonContext();
|
|
|
|
// test that lazy loading on
|
|
PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))");
|
|
JsonWriteOptions o = new JsonWriteOptions();
|
|
o.setPathProperties(pp);
|
|
|
|
System.out.println("expecting lazy load of Customer beans to fetch customer name");
|
|
String s = json.toJsonString(list, o);
|
|
System.out.println(s);
|
|
Assert.assertTrue(s.contains("\"contacts\""));
|
|
Assert.assertTrue(s.contains("\"name\""));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void test_lazyLoadContacts() throws IOException {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
List<Customer> list = Ebean.find(Customer.class).select("id, name, status, shippingAddress")
|
|
// .fetch("contacts")
|
|
.order().desc("id").findList();
|
|
|
|
JsonContext json = Ebean.createJsonContext();
|
|
|
|
// test that lazy loading on
|
|
PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))");
|
|
JsonWriteOptions o = new JsonWriteOptions();
|
|
o.setPathProperties(pp);
|
|
|
|
System.out.println("expecting lazy load of Customer contacts ");
|
|
String s = json.toJsonString(list, o);
|
|
System.out.println(s);
|
|
Assert.assertTrue(s.contains("\"contacts\""));
|
|
Assert.assertTrue(s.contains("\"name\""));
|
|
|
|
}
|
|
|
|
}
|