mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#919 - io.ebean package initial
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
package org.tests.inheritance;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import io.ebean.Query;
|
||||
import org.tests.model.basic.Car;
|
||||
import org.tests.model.basic.CarAccessory;
|
||||
import org.tests.model.basic.CarFuse;
|
||||
import org.tests.model.basic.Truck;
|
||||
import org.tests.model.basic.Vehicle;
|
||||
import org.tests.model.basic.VehicleDriver;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.StrictAssertions.assertThat;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class TestInheritInsert extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void testCasting() {
|
||||
|
||||
Truck t = new Truck();
|
||||
t.setCapacity(10d);
|
||||
Ebean.save(t);
|
||||
|
||||
Vehicle v = Ebean.find(Vehicle.class, t.getId());
|
||||
if (v instanceof Truck) {
|
||||
Truck t0 = (Truck) v;
|
||||
assertEquals(Double.valueOf(10d), t0.getCapacity());
|
||||
assertEquals(Double.valueOf(10d), ((Truck) v).getCapacity());
|
||||
assertNotNull(t0.getId());
|
||||
} else {
|
||||
assertTrue("v not a Truck?", false);
|
||||
}
|
||||
|
||||
VehicleDriver driver = new VehicleDriver();
|
||||
driver.setName("Jim");
|
||||
driver.setVehicle(v);
|
||||
|
||||
Ebean.save(driver);
|
||||
|
||||
VehicleDriver d1 = Ebean.find(VehicleDriver.class, driver.getId());
|
||||
v = d1.getVehicle();
|
||||
if (v instanceof Truck) {
|
||||
Double capacity = ((Truck) v).getCapacity();
|
||||
assertEquals(Double.valueOf(10d), capacity);
|
||||
assertNotNull(v.getId());
|
||||
} else {
|
||||
assertTrue("v not a Truck?", false);
|
||||
}
|
||||
|
||||
List<VehicleDriver> list = Ebean.find(VehicleDriver.class).findList();
|
||||
for (VehicleDriver vehicleDriver : list) {
|
||||
if (vehicleDriver.getVehicle() instanceof Truck) {
|
||||
Double capacity = ((Truck) vehicleDriver.getVehicle()).getCapacity();
|
||||
assertEquals(Double.valueOf(10d), capacity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuery() {
|
||||
|
||||
Car car = new Car();
|
||||
car.setLicenseNumber("MARIOS_CAR_LICENSE");
|
||||
Ebean.save(car);
|
||||
|
||||
VehicleDriver driver = new VehicleDriver();
|
||||
driver.setName("Mario");
|
||||
driver.setVehicle(car);
|
||||
Ebean.save(driver);
|
||||
|
||||
Query<VehicleDriver> query = Ebean.find(VehicleDriver.class);
|
||||
query.where().eq("vehicle.licenseNumber", "MARIOS_CAR_LICENSE");
|
||||
List<VehicleDriver> drivers = query.findList();
|
||||
|
||||
assertNotNull(drivers);
|
||||
assertEquals(1, drivers.size());
|
||||
assertNotNull(drivers.get(0));
|
||||
|
||||
assertEquals("Mario", drivers.get(0).getName());
|
||||
assertEquals("MARIOS_CAR_LICENSE", drivers.get(0).getVehicle().getLicenseNumber());
|
||||
|
||||
Vehicle car2 = Ebean.find(Vehicle.class, car.getId());
|
||||
|
||||
car2.setLicenseNumber("test");
|
||||
Ebean.save(car);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_AtOrderBy_on_ChildOfChild() {
|
||||
|
||||
Car car = new Car();
|
||||
car.setLicenseNumber("ABC");
|
||||
Ebean.save(car);
|
||||
|
||||
CarFuse fuse = new CarFuse();
|
||||
fuse.setLocationCode("xdfg");
|
||||
Ebean.save(fuse);
|
||||
|
||||
CarAccessory accessory = new CarAccessory(car, fuse);
|
||||
Ebean.save(accessory);
|
||||
|
||||
|
||||
Query<Car> query = Ebean.find(Car.class)
|
||||
.fetch("accessories")
|
||||
.where()
|
||||
.eq("id", car.getId())
|
||||
.query();
|
||||
|
||||
Car result = query.findUnique();
|
||||
|
||||
assertThat(query.getGeneratedSql()).contains("order by t0.id, t2.location_code");
|
||||
assertThat(query.getGeneratedSql()).contains("left join car_fuse t2 on t2.id = t1.fuse_id");
|
||||
|
||||
assertNotNull(result);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user