package org.tests.text.json;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.text.json.JsonContext;
import org.tests.model.basic.Car;
import org.tests.model.basic.CarAccessory;
import org.tests.model.basic.CarFuse;
import org.tests.model.basic.Trip;
import org.tests.model.basic.Truck;
import org.tests.model.basic.Vehicle;
import org.tests.model.basic.VehicleDriver;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class TestTextJsonInheritance extends BaseTestCase {
@Test
public void test() throws IOException {
setupData();
List<Vehicle> list = Ebean.find(Vehicle.class).setAutoTune(false).findList();
Assert.assertEquals(2, list.size());
JsonContext jsonContext = Ebean.json();
String jsonString = jsonContext.toJson(list);
List<Vehicle> rebuiltList = jsonContext.toList(Vehicle.class, jsonString);
Assert.assertEquals(2, rebuiltList.size());
}
private void setupData() {
Ebean.createUpdate(CarAccessory.class, "delete from CarAccessory").execute();
Ebean.createUpdate(CarFuse.class, "delete from CarFuse").execute();
Ebean.createUpdate(Trip.class, "delete from trip").execute();
Ebean.createUpdate(VehicleDriver.class, "delete from vehicleDriver").execute();
Ebean.createUpdate(Vehicle.class, "delete from vehicle").execute();
Car c = new Car();
c.setLicenseNumber("C6788");
c.setDriver("CarDriver");
Ebean.save(c);
Truck t = new Truck();
t.setLicenseNumber("T1098");
t.setCapacity(20D);
Ebean.save(t);
}
}