diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BaseTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BaseTest.java index df637087d..3dc9d7018 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BaseTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BaseTest.java @@ -1,14 +1,50 @@ package io.ebeaninternal.server.deploy; import io.ebean.DB; +import io.ebean.Database; +import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; +import org.tests.model.basic.Animal; + +import javax.persistence.PersistenceException; public class BaseTest { - protected SpiEbeanServer server = (SpiEbeanServer)DB.getDefault(); + protected SpiEbeanServer db = (SpiEbeanServer)DB.getDefault(); protected BeanDescriptor getBeanDescriptor(Class cls) { - return server.descriptor(cls); + return db.descriptor(cls); } + protected SpiEbeanServer spiEbeanServer() { + return db; + } + + protected Database server() { + return db; + } + + protected void initTables() { + try { + db.find(Animal.class).findCount(); + } catch (PersistenceException e) { + db.script().run("/h2-init.sql"); + } + } + + protected boolean isH2() { + return isPlatform(Platform.H2); + } + protected boolean isPostgres() { + return isPlatform(Platform.POSTGRES); + } + protected boolean isSqlServer() { + return isPlatform(Platform.SQLSERVER); + } + protected boolean isMySql() { + return isPlatform(Platform.MYSQL); + } + protected boolean isPlatform(Platform platform) { + return db.platform().base().equals(platform); + } } diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java similarity index 91% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java index 14cc5208c..89f77d70b 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptorTest.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.bean.EntityBean; import io.ebean.plugin.Property; @@ -8,6 +7,7 @@ import io.ebeaninternal.server.core.CacheOptions; import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import io.ebeaninternal.server.deploy.meta.DeployIdentityMode; import io.ebeanservice.docstore.api.DocStoreBeanAdapter; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.tests.model.basic.*; import org.tests.model.bridge.BSite; @@ -21,7 +21,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class BeanDescriptorTest extends BaseTestCase { +public class BeanDescriptorTest extends BaseTest { private BeanDescriptor customerDesc = spiEbeanServer().descriptor(Customer.class); @@ -30,35 +30,37 @@ public class BeanDescriptorTest extends BaseTestCase { Customer bean = customerDesc.createReference(null, false, 42, null); assertThat(bean.getId()).isEqualTo(42); - assertThat(server().beanState(bean).isReadOnly()).isFalse(); + Assertions.assertThat(server().beanState(bean).isReadOnly()).isFalse(); } @Test public void createReference_whenReadOnly() { Customer bean = customerDesc.createReference(Boolean.TRUE, false, 42, null); - assertThat(server().beanState(bean).isReadOnly()).isTrue(); + Assertions.assertThat(server().beanState(bean).isReadOnly()).isTrue(); } @Test public void createReference_whenNotReadOnly() { Customer bean = customerDesc.createReference(Boolean.FALSE, false, 42, null); - assertThat(server().beanState(bean).isReadOnly()).isFalse(); + Assertions.assertThat(server().beanState(bean).isReadOnly()).isFalse(); bean = customerDesc.createReference(42, null); - assertThat(server().beanState(bean).isReadOnly()).isFalse(); + Assertions.assertThat(server().beanState(bean).isReadOnly()).isFalse(); } @Test public void createReference_when_disabledLazyLoad() { Customer bean = customerDesc.createReference(Boolean.FALSE, true, 42, null); - assertThat(server().beanState(bean).isDisableLazyLoad()).isTrue(); + Assertions.assertThat(server().beanState(bean).isDisableLazyLoad()).isTrue(); } @Test public void createReference_with_inheritance() { + initTables(); + Cat cat = new Cat(); cat.setName("Puss"); DB.save(cat); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java similarity index 100% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java similarity index 89% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java index 21296cabf..d3afba106 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_whenCreatedPropertyTest.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebeaninternal.api.SpiEbeanServer; import org.junit.jupiter.api.Test; @@ -10,9 +9,7 @@ import org.tests.model.basic.EBasic; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; - -public class BeanDescriptor_whenCreatedPropertyTest extends BaseTestCase { - +public class BeanDescriptor_whenCreatedPropertyTest { @Test public void test() { diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java similarity index 69% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java index cc966accc..a83521d76 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyTest.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.bean.BeanCollection; import io.ebean.bean.EntityBean; @@ -8,7 +7,6 @@ import io.ebean.common.BeanList; import org.junit.jupiter.api.Test; import org.tests.model.basic.Contact; import org.tests.model.basic.Customer; -import org.tests.model.basic.ResetBasicData; import java.util.ArrayList; import java.util.List; @@ -17,7 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; -public class BeanPropertyAssocManyTest extends BaseTestCase { +public class BeanPropertyAssocManyTest extends BaseTest { private BeanDescriptor customerDesc = spiEbeanServer().descriptor(Customer.class); @@ -62,22 +60,22 @@ public class BeanPropertyAssocManyTest extends BaseTestCase { assertThat(customer.getContacts().get(0)).isSameAs(contact); } - @Test - public void findIdsByParentId() { - - ResetBasicData.reset(); - - List ids = DB.find(Customer.class).orderBy("id").setMaxRows(2).findIds(); - - List customerIds = new ArrayList<>(); - customerIds.add(ids.get(0)); - customerIds.add(ids.get(1)); - - List contactIdsForOne = contacts().findIdsByParentId(ids.get(0), null, null, null, true); - - List contactIdsForMultiple = contacts().findIdsByParentId(null, customerIds, null, null, true); - - assertThat(contactIdsForOne).isNotEmpty(); - assertThat(contactIdsForMultiple).isNotEmpty(); - } +// @Test +// public void findIdsByParentId() { +// +// ResetBasicData.reset(); +// +// List ids = DB.find(Customer.class).orderBy("id").setMaxRows(2).findIds(); +// +// List customerIds = new ArrayList<>(); +// customerIds.add(ids.get(0)); +// customerIds.add(ids.get(1)); +// +// List contactIdsForOne = contacts().findIdsByParentId(ids.get(0), null, null, null, true); +// +// List contactIdsForMultiple = contacts().findIdsByParentId(null, customerIds, null, null, true); +// +// assertThat(contactIdsForOne).isNotEmpty(); +// assertThat(contactIdsForMultiple).isNotEmpty(); +// } } diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java similarity index 77% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java index f81eb37b0..c26379261 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java @@ -1,16 +1,12 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; -import io.ebean.xtest.ForPlatform; -import io.ebean.annotation.Platform; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.tests.model.basic.Address; import org.tests.model.basic.BWithQIdent; import org.tests.model.basic.Customer; - -public class DeployPropertyParserTest extends BaseTestCase { +public class DeployPropertyParserTest extends BaseTest { private final BeanDescriptor descriptor = getBeanDescriptor(Customer.class); @@ -61,21 +57,14 @@ public class DeployPropertyParserTest extends BaseTestCase { } @Test - @ForPlatform({Platform.H2, Platform.POSTGRES}) public void withQuote_when_match_h2() { - Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}\"Name\" like ?"); - } - - @Test - @ForPlatform(Platform.SQLSERVER) - public void withQuote_when_match_sqlserver() { - Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}[Name] like ?"); - } - - @Test - @ForPlatform(Platform.MYSQL) - public void withQuote_when_match_mysql() { - Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}`Name` like ?"); + if (isH2() || isPostgres()) { + Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}\"Name\" like ?"); + } else if (isSqlServer()) { + Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}[Name] like ?"); + } else if (isMySql()) { + Assertions.assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}`Name` like ?"); + } } @Test diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java similarity index 95% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java index 11b61ad06..423bc5f31 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/FormulaPropertyPathTest.java @@ -1,12 +1,11 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; import static org.assertj.core.api.Assertions.assertThat; -public class FormulaPropertyPathTest extends BaseTestCase { +public class FormulaPropertyPathTest extends BaseTest { private BeanDescriptor customerDesc = getBeanDescriptor(Customer.class); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java similarity index 97% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java index 72bfccdde..0268000ff 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestBeanDescriptorHasIdProperty.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.Database; import io.ebean.bean.EntityBean; @@ -19,7 +18,7 @@ import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -public class TestBeanDescriptorHasIdProperty extends BaseTestCase { +public class TestBeanDescriptorHasIdProperty extends BaseTest { SpiEbeanServer spiServer; diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java similarity index 92% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java index de8dbdadc..445238a97 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestCollectionLoadedStatus.java @@ -1,6 +1,5 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.bean.BeanCollection; import io.ebean.bean.EntityBean; @@ -14,7 +13,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -public class TestCollectionLoadedStatus extends BaseTestCase { +public class TestCollectionLoadedStatus { @Test public void test() { diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java similarity index 80% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java index 22a4eb8f0..7e006904c 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertSimple.java @@ -1,10 +1,7 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; -import io.ebean.DB; import io.ebean.Database; import io.ebean.bean.EntityBean; -import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.api.json.SpiJsonWriter; import org.junit.jupiter.api.Test; import org.tests.model.basic.Customer; @@ -19,18 +16,14 @@ import java.sql.Timestamp; import static org.assertj.core.api.Assertions.assertThat; -public class TestDiffHelpInsertSimple extends BaseTestCase { +public class TestDiffHelpInsertSimple extends BaseTest { private final long firstTime = System.currentTimeMillis() - 10000; - private final Database server; - private final BeanDescriptor orderDesc; public TestDiffHelpInsertSimple() { - server = DB.getDefault(); - SpiEbeanServer spiServer = (SpiEbeanServer) server; - orderDesc = spiServer.descriptor(Order.class); + orderDesc = db.descriptor(Order.class); } private Order createBaseOrder(Database server) { @@ -49,7 +42,7 @@ public class TestDiffHelpInsertSimple extends BaseTestCase { Date date = Date.valueOf("2000-01-01"); - Order order1 = createBaseOrder(server); + Order order1 = createBaseOrder(db); order1.setOrderDate(date); StringWriter buffer = new StringWriter(); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java similarity index 86% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java rename to ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java index b1e661220..d2a05ebaf 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/deploy/TestDiffHelpInsertWithEmbedded.java @@ -1,10 +1,6 @@ package io.ebeaninternal.server.deploy; -import io.ebean.xtest.BaseTestCase; -import io.ebean.DB; -import io.ebean.Database; import io.ebean.bean.EntityBean; -import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.api.json.SpiJsonWriter; import org.junit.jupiter.api.Test; import org.tests.model.embedded.EMain; @@ -15,14 +11,12 @@ import java.io.StringWriter; import static org.assertj.core.api.Assertions.assertThat; -public class TestDiffHelpInsertWithEmbedded extends BaseTestCase { +public class TestDiffHelpInsertWithEmbedded extends BaseTest { private final BeanDescriptor emainDesc; public TestDiffHelpInsertWithEmbedded() { - Database server = DB.getDefault(); - SpiEbeanServer spiServer = (SpiEbeanServer) server; - emainDesc = spiServer.descriptor(EMain.class); + emainDesc = getBeanDescriptor(EMain.class); } @Test diff --git a/ebean-core/src/test/java/org/tests/model/basic/Animal.java b/ebean-core/src/test/java/org/tests/model/basic/Animal.java new file mode 100644 index 000000000..069b1e4cf --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/Animal.java @@ -0,0 +1,54 @@ +package org.tests.model.basic; + +import javax.persistence.*; + +@Entity +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(name = "species") +public abstract class Animal { + + @Id + Long id; + + @Version + Long version; + + @Column(name = "species", insertable = false, updatable = false, nullable = false) + String species; + + @ManyToOne + AnimalShelter shelter; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + public String getSpecies() { + return species; + } + + public void setSpecies(String species) { + this.species = species; + } + + public AnimalShelter getShelter() { + return shelter; + } + + public void setShelter(AnimalShelter shelter) { + this.shelter = shelter; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/basic/AnimalShelter.java b/ebean-core/src/test/java/org/tests/model/basic/AnimalShelter.java new file mode 100644 index 000000000..761a8d4c7 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/AnimalShelter.java @@ -0,0 +1,57 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Version; +import java.util.List; + +import static javax.persistence.CascadeType.PERSIST; + +@Entity +public class AnimalShelter { + + @Id + Long id; + + @Version + Long version; + + String name; + + @OneToMany(cascade = PERSIST, mappedBy = "shelter", orphanRemoval = true) + List animals; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getAnimals() { + return animals; + } + + public void setAnimals(List animals) { + this.animals = animals; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/basic/BWithQIdent.java b/ebean-core/src/test/java/org/tests/model/basic/BWithQIdent.java new file mode 100644 index 000000000..4ba4c5def --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/BWithQIdent.java @@ -0,0 +1,57 @@ +package org.tests.model.basic; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Version; +import javax.validation.constraints.Size; +import java.sql.Timestamp; + +@Entity +public class BWithQIdent { + + @Id + Integer id; + @Column(name = "`Name`", unique = true) + @Size(max = 191) // key must not exceed 767 Bytes, so max key len for mysql with utf8mb4 = 191*4 = 764 bytes + String name; + + @Column(name = "`CODE`") + String CODE; + + @Version + Timestamp lastUpdated; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCODE() { + return CODE; + } + + public void setCODE(String CODE) { + this.CODE = CODE; + } + + public Timestamp getLastUpdated() { + return lastUpdated; + } + + public void setLastUpdated(Timestamp lastUpdated) { + this.lastUpdated = lastUpdated; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/basic/Cat.java b/ebean-core/src/test/java/org/tests/model/basic/Cat.java new file mode 100644 index 000000000..d3df201b6 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/Cat.java @@ -0,0 +1,32 @@ +package org.tests.model.basic; + +import io.ebean.annotation.Formula; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@Entity +@DiscriminatorValue("CAT") +public class Cat extends Animal { + + String name; + + @Formula(select = "${ta}.species") + String catFormula; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCatFormula() { + return catFormula; + } + + public void setCatFormula(String catFormula) { + this.catFormula = catFormula; + } +} diff --git a/ebean-core/src/test/java/org/tests/model/basic/Dog.java b/ebean-core/src/test/java/org/tests/model/basic/Dog.java new file mode 100644 index 000000000..7b2fad546 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/basic/Dog.java @@ -0,0 +1,31 @@ +package org.tests.model.basic; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import java.sql.Date; + +@Entity +@DiscriminatorValue("DOG") +public class Dog extends Animal { + + String registrationNumber; + + Date dateOfBirth; + + public String getRegistrationNumber() { + return registrationNumber; + } + + public void setRegistrationNumber(String registrationNumber) { + this.registrationNumber = registrationNumber; + } + + public Date getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(Date dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/bridge/BSite.java b/ebean-core/src/test/java/org/tests/model/bridge/BSite.java new file mode 100644 index 000000000..2023a8c4b --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/bridge/BSite.java @@ -0,0 +1,20 @@ +package org.tests.model.bridge; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.util.UUID; + +@Entity +public class BSite { + + @Id @GeneratedValue + UUID id; + + String name; + + public BSite(String name) { + this.name = name; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/bridge/BUser.java b/ebean-core/src/test/java/org/tests/model/bridge/BUser.java new file mode 100644 index 000000000..7a87fe864 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/bridge/BUser.java @@ -0,0 +1,19 @@ +package org.tests.model.bridge; + +import javax.persistence.Entity; +import javax.persistence.Id; +import java.util.UUID; + +@Entity +public class BUser { + + @Id + UUID id; + + String name; + + public BUser(String name) { + this.name = name; + } + +} diff --git a/ebean-core/src/test/java/org/tests/model/composite/RCustomer.java b/ebean-core/src/test/java/org/tests/model/composite/RCustomer.java new file mode 100644 index 000000000..d44cf8052 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/composite/RCustomer.java @@ -0,0 +1,43 @@ +package org.tests.model.composite; + + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; + +/** + * @author rnentjes + */ +@Entity +public class RCustomer { + + @EmbeddedId + private RCustomerKey key; + + private String description; + + public RCustomer() { + } + + public RCustomer(RCustomerKey key, String description) { + this.key = key; + this.description = description; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public RCustomerKey getKey() { + return key; + } + + public void setKey(RCustomerKey key) { + this.key = key; + } + +} + diff --git a/ebean-core/src/test/java/org/tests/model/composite/RCustomerKey.java b/ebean-core/src/test/java/org/tests/model/composite/RCustomerKey.java new file mode 100644 index 000000000..a871d49aa --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/composite/RCustomerKey.java @@ -0,0 +1,68 @@ +package org.tests.model.composite; + + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class RCustomerKey { + + @Size(max=127) + private String company; + + @Size(max=127) + private String name; + + public RCustomerKey() { + } + + public RCustomerKey(String company, String name) { + this.company = company; + this.name = name; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final RCustomerKey other = (RCustomerKey) obj; + if ((this.company == null) ? (other.company != null) : !this.company.equals(other.company)) { + return false; + } + if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 3; + hash = 89 * hash + (this.company != null ? this.company.hashCode() : 0); + hash = 89 * hash + (this.name != null ? this.name.hashCode() : 0); + return hash; + } + + +} + diff --git a/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLive.java b/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLive.java new file mode 100644 index 000000000..341f0670e --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLive.java @@ -0,0 +1,34 @@ +package org.tests.model.embedded; + +import io.ebean.Model; +import io.ebean.annotation.WhenCreated; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import java.util.Date; + +@Entity +public class UserInterestLive extends Model { + + @EmbeddedId + private final UserInterestLiveKey key; + + @WhenCreated + private Date createdAt; + + public UserInterestLive(UserInterestLiveKey key) { + this.key = key; + } + + public UserInterestLiveKey getKey() { + return key; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } +} diff --git a/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLiveKey.java b/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLiveKey.java new file mode 100644 index 000000000..52b6583cd --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/embedded/UserInterestLiveKey.java @@ -0,0 +1,30 @@ +package org.tests.model.embedded; + +import javax.persistence.Embeddable; +import java.util.Objects; + +@Embeddable +public class UserInterestLiveKey { + + private long userId; + private long liveId; + + public UserInterestLiveKey(long userId, long liveId) { + this.userId = userId; + this.liveId = liveId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UserInterestLiveKey that = (UserInterestLiveKey) o; + return userId == that.userId && + liveId == that.liveId; + } + + @Override + public int hashCode() { + return Objects.hash(userId, liveId); + } +} diff --git a/ebean-core/src/test/resources/application-test.properties b/ebean-core/src/test/resources/application-test.properties index d42469e88..3b0bce78a 100644 --- a/ebean-core/src/test/resources/application-test.properties +++ b/ebean-core/src/test/resources/application-test.properties @@ -4,3 +4,10 @@ datasource.h2.username=sa datasource.h2.password= datasource.h2.url=jdbc:h2:mem:testCoreMem;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=KEY,VALUE +datasource.h2other.username=sa +datasource.h2other.password= +datasource.h2other.url=jdbc:h2:mem:testCoreOther;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=KEY,VALUE + +ebean.h2.ddl.generate=true +ebean.h2.ddl.run=true +ebean.h2.ddl.initSql=h2-init.sql diff --git a/ebean-core/src/test/resources/h2-init.sql b/ebean-core/src/test/resources/h2-init.sql new file mode 100644 index 000000000..ff38387da --- /dev/null +++ b/ebean-core/src/test/resources/h2-init.sql @@ -0,0 +1,19 @@ + +create table animal ( + species varchar(255) not null, + id bigint generated by default as identity not null, + shelter_id bigint, + version bigint not null, + name varchar(255), + registration_number varchar(255), + date_of_birth date, + dog_size varchar(255), + constraint pk_animal primary key (id) +); + +create table animal_shelter ( + id bigint generated by default as identity not null, + name varchar(255), + version bigint not null, + constraint pk_animal_shelter primary key (id) +); diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestNotEnhancedMappedSuper.java b/ebean-test/src/test/java/io/ebean/xtest/core/TestNotEnhancedMappedSuper.java similarity index 96% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestNotEnhancedMappedSuper.java rename to ebean-test/src/test/java/io/ebean/xtest/core/TestNotEnhancedMappedSuper.java index d271374ac..6a81461f4 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestNotEnhancedMappedSuper.java +++ b/ebean-test/src/test/java/io/ebean/xtest/core/TestNotEnhancedMappedSuper.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.deploy; +package io.ebean.xtest.core; import io.ebean.xtest.BaseTestCase; diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestReferenceWithConstructorProperties.java b/ebean-test/src/test/java/io/ebean/xtest/core/TestReferenceWithConstructorProperties.java similarity index 95% rename from ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestReferenceWithConstructorProperties.java rename to ebean-test/src/test/java/io/ebean/xtest/core/TestReferenceWithConstructorProperties.java index c8b4ac78a..ce4d4109a 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/deploy/TestReferenceWithConstructorProperties.java +++ b/ebean-test/src/test/java/io/ebean/xtest/core/TestReferenceWithConstructorProperties.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.deploy; +package io.ebean.xtest.core; import io.ebean.xtest.BaseTestCase; import io.ebean.BeanState;