package org.tests.inheritance; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.bean.BeanCollection.ModifyListenMode; import io.ebean.common.BeanList; import org.tests.model.basic.Animal; import org.tests.model.basic.AnimalShelter; import org.tests.model.basic.BigDog; import org.tests.model.basic.Cat; import org.tests.model.basic.Dog; import org.junit.Test; import java.util.List; import static org.junit.Assert.assertNotNull; public class TestInheritanceOnMany extends BaseTestCase { @Test public void test() { Cat cat = new Cat(); cat.setName("Puss"); Ebean.save(cat); Dog dog = new Dog(); dog.setRegistrationNumber("DOGGIE"); Ebean.save(dog); BigDog bd = new BigDog(); bd.setDogSize("large"); bd.setRegistrationNumber("BG1"); Ebean.save(bd); AnimalShelter shelter = new AnimalShelter(); shelter.setName("My Animal Shelter"); shelter.getAnimals().add(cat); shelter.getAnimals().add(dog); Ebean.save(shelter); AnimalShelter shelter2 = Ebean.find(AnimalShelter.class, shelter.getId()); List<Animal> animals = shelter2.getAnimals(); BeanList<?> beanList = (BeanList<?>) animals; ModifyListenMode modifyListenMode = beanList.getModifyListenMode(); assertNotNull(modifyListenMode); assertNotNull(Ebean.find(Animal.class).findList()); } }