Search in sources :

Example 26 with Person

use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.

the class EntityViewUpdateSubviewMultiParentJoinTableTest method assertSubviewEquals.

public static void assertSubviewEquals(Collection<Person> persons, Collection<? extends PersonView> personSubviews) {
    if (persons == null) {
        assertNull(personSubviews);
        return;
    }
    assertNotNull(personSubviews);
    assertEquals(persons.size(), personSubviews.size());
    for (Person p : persons) {
        boolean found = false;
        for (PersonView pSub : personSubviews) {
            if (p.getName().equals(pSub.getName())) {
                found = true;
                break;
            }
        }
        if (!found) {
            Assert.fail("Could not find a person subview instance with the name: " + p.getName());
        }
    }
}
Also used : PersonView(com.blazebit.persistence.view.testsuite.update.subview.multiparent.jointable.model.PersonView) UpdatablePersonView(com.blazebit.persistence.view.testsuite.update.subview.multiparent.jointable.model.UpdatablePersonView) Person(com.blazebit.persistence.testsuite.entity.Person)

Example 27 with Person

use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.

the class EntityViewUpdateSubviewMultiParentSelfReferentialTest method testCreateNewSelfReferential.

@Test
public void testCreateNewSelfReferential() {
    // Given
    UpdatablePersonView p = evm.create(UpdatablePersonView.class);
    p.setName("p1");
    p.setFriend(p);
    // When
    update(p);
    // Then
    Person person = em.find(Person.class, p.getId());
    assertEquals(person, person.getFriend());
}
Also used : UpdatablePersonView(com.blazebit.persistence.view.testsuite.update.subview.multiparent.selfreferential.model.UpdatablePersonView) Person(com.blazebit.persistence.testsuite.entity.Person) AbstractEntityViewUpdateTest(com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest) Test(org.junit.Test)

Example 28 with Person

use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.

the class EntityViewUpdateNestedCreatableSubviewCollectionsTest method assertSubviewEquals.

public static void assertSubviewEquals(Collection<Person> persons, Collection<? extends UpdatableResponsiblePersonView> personSubviews) {
    if (persons == null) {
        assertNull(personSubviews);
        return;
    }
    assertNotNull(personSubviews);
    assertEquals(persons.size(), personSubviews.size());
    for (Person p : persons) {
        boolean found = false;
        for (UpdatableResponsiblePersonView pSub : personSubviews) {
            if (p.getName().equals(pSub.getName())) {
                found = true;
                if (p.getFriend() == null) {
                    assertNull(pSub.getFriend());
                } else {
                    assertNotNull(pSub.getFriend());
                    assertEquals(p.getFriend().getId(), pSub.getFriend().getId());
                    assertEquals(p.getFriend().getName(), pSub.getFriend().getName());
                }
                break;
            }
        }
        if (!found) {
            Assert.fail("Could not find a person subview instance with the name: " + p.getName());
        }
    }
}
Also used : UpdatableResponsiblePersonView(com.blazebit.persistence.view.testsuite.update.subview.nested.creatable.model.UpdatableResponsiblePersonView) Person(com.blazebit.persistence.testsuite.entity.Person)

Example 29 with Person

use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.

the class EntityViewUpdateSubviewInverseSimpleTest method testUpdateRemoveNonExisting.

@Test
public void testUpdateRemoveNonExisting() {
    // Given
    UpdatablePersonView newPerson = evm.create(UpdatablePersonView.class);
    newPerson.setName("newPers1");
    UpdatableDocumentView document = evm.create(UpdatableDocumentView.class);
    document.setName("newDoc123");
    document.setOwner(getP1View(PersonIdView.class));
    newPerson.getOwnedDocuments2().add(document);
    update(newPerson);
    // When
    newPerson.getOwnedDocuments2().remove("non-existing");
    update(newPerson);
    // Then
    em.clear();
    Person pers = em.find(Person.class, newPerson.getId());
    Assert.assertEquals(1, pers.getOwnedDocuments2().size());
}
Also used : UpdatableDocumentView(com.blazebit.persistence.view.testsuite.update.subview.inverse.simple.model.UpdatableDocumentView) UpdatablePersonView(com.blazebit.persistence.view.testsuite.update.subview.inverse.simple.model.UpdatablePersonView) Person(com.blazebit.persistence.testsuite.entity.Person) PersonIdView(com.blazebit.persistence.view.testsuite.update.subview.inverse.simple.model.PersonIdView) Test(org.junit.Test) AbstractEntityViewUpdateDocumentTest(com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateDocumentTest)

Example 30 with Person

use of com.blazebit.persistence.testsuite.entity.Person in project blaze-persistence by Blazebit.

the class BasicQueryTest method testEntityJoin.

// NOTE: Entity joins are only supported on Hibernate 5.1+
@Test
@Category({ NoDatanucleus.class, NoEclipselink.class, NoOpenJPA.class, NoHibernate42.class, NoHibernate43.class, NoHibernate50.class })
public void testEntityJoin() {
    Assume.assumeTrue(jpaProvider.supportsEntityJoin());
    doInJPA(entityManager -> {
        QPerson otherAuthor = new QPerson("otherAuthor");
        QDocument otherBook = new QDocument("otherBook");
        Map<Person, List<Document>> booksByAuthor = new BlazeJPAQuery<Document>(entityManager, cbf).from(otherAuthor).innerJoin(otherBook).on(otherBook.owner.eq(otherAuthor)).transform(GroupBy.groupBy(otherAuthor).as(GroupBy.list(otherBook)));
        assertNotNull(booksByAuthor);
    });
}
Also used : QDocument(com.blazebit.persistence.testsuite.entity.QDocument) QPerson(com.blazebit.persistence.testsuite.entity.QPerson) List(java.util.List) PagedList(com.blazebit.persistence.PagedList) Person(com.blazebit.persistence.testsuite.entity.Person) QPerson(com.blazebit.persistence.testsuite.entity.QPerson) Category(org.junit.experimental.categories.Category) AbstractCoreTest(com.blazebit.persistence.testsuite.AbstractCoreTest) Test(org.junit.Test)

Aggregations

Person (com.blazebit.persistence.testsuite.entity.Person)175 Document (com.blazebit.persistence.testsuite.entity.Document)94 EntityManager (javax.persistence.EntityManager)77 TxVoidWork (com.blazebit.persistence.testsuite.tx.TxVoidWork)76 Test (org.junit.Test)50 AssertStatementBuilder (com.blazebit.persistence.testsuite.base.jpa.assertion.AssertStatementBuilder)19 Before (org.junit.Before)19 Version (com.blazebit.persistence.testsuite.entity.Version)18 AbstractEntityViewTest (com.blazebit.persistence.view.testsuite.AbstractEntityViewTest)14 HashMap (java.util.HashMap)14 Map (java.util.Map)14 AbstractEntityViewUpdateDocumentTest (com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateDocumentTest)11 Category (org.junit.experimental.categories.Category)11 CriteriaBuilder (com.blazebit.persistence.CriteriaBuilder)10 UpdatablePersonView (com.blazebit.persistence.view.testsuite.update.subview.simple.mutable.model.UpdatablePersonView)7 NameObject (com.blazebit.persistence.testsuite.entity.NameObject)5 Tuple (javax.persistence.Tuple)5 AbstractCoreTest (com.blazebit.persistence.testsuite.AbstractCoreTest)4 NameObjectContainer (com.blazebit.persistence.testsuite.entity.NameObjectContainer)4 QDocument (com.blazebit.persistence.testsuite.entity.QDocument)4