package io.ebeaninternal.server.core; import io.ebean.BaseTestCase; import io.ebean.Ebean; import org.tests.model.basic.Car; import org.tests.model.basic.Customer; import org.tests.model.basic.ResetBasicData; import org.tests.model.basic.Vehicle; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class DefaultServer_getReferenceTest extends BaseTestCase { @Test public void getReference_noPC() { Ebean.getReference(Customer.class, 42); } @Test public void getReference_when_inPC_expect_getFromPC() { ResetBasicData.reset(); Ebean.beginTransaction(); try { Customer loaded = Ebean.find(Customer.class, 1); Customer reference = Ebean.getReference(Customer.class, 1); assertThat(loaded).isSameAs(reference); } finally { Ebean.endTransaction(); } } @Test public void inherit_getReference_when_noPC() { Car car = new Car(); car.setDriver("TestForRef"); Ebean.save(car); Vehicle reference = Ebean.getReference(Vehicle.class, car.getId()); assertThat(reference).isInstanceOf(Car.class); assertThat(reference.getId()).isSameAs(car.getId()); Ebean.delete(car); } @Test public void inherit_getReference_when_inPC() { Car car = new Car(); car.setDriver("TestForRef"); Ebean.save(car); Ebean.beginTransaction(); try { Vehicle loaded = Ebean.find(Vehicle.class, car.getId()); Vehicle reference = Ebean.getReference(Vehicle.class, car.getId()); assertThat(reference).isSameAs(loaded); } finally { Ebean.endTransaction(); } Ebean.delete(car); } }