Search in sources :

Example 6 with Artist

use of org.apache.cayenne.testdo.testmap.Artist in project cayenne by apache.

the class SimpleIdIncrementalFaultListIT method testLastIndexOf.

@Test
public void testLastIndexOf() throws Exception {
    SimpleIdIncrementalFaultList<?> list = prepareList(6);
    Expression qual = ExpressionFactory.matchExp("artistName", "artist20");
    SelectQuery query = new SelectQuery(Artist.class, qual);
    List<?> artists = list.dataContext.performQuery(query);
    assertEquals(1, artists.size());
    Artist row = (Artist) artists.get(0);
    assertEquals(19, list.lastIndexOf(row));
    assertEquals(-1, list.lastIndexOf(list.dataContext.newObject("Artist")));
}
Also used : SelectQuery(org.apache.cayenne.query.SelectQuery) Artist(org.apache.cayenne.testdo.testmap.Artist) Expression(org.apache.cayenne.exp.Expression) Test(org.junit.Test)

Example 7 with Artist

use of org.apache.cayenne.testdo.testmap.Artist in project cayenne by apache.

the class SimpleIdIncrementalFaultListPrefetchIT method testPrefetch3.

/**
 * Test that a to-many relationship is initialized.
 */
@Test
public void testPrefetch3() throws Exception {
    createArtistsAndPaintingsDataSet();
    Expression e = ExpressionFactory.likeExp("artistName", "artist1%");
    SelectQuery q = new SelectQuery("Artist", e);
    q.addPrefetch("paintingArray");
    q.setPageSize(3);
    IncrementalFaultList result = (IncrementalFaultList) context.performQuery(q);
    assertEquals(6, result.size());
    // currently queries with prefetch do not resolve their first page
    assertEquals(result.size(), result.getUnfetchedObjects());
    // go through the second page objects and check their to many
    for (int i = 3; i < 6; i++) {
        Artist a = (Artist) result.get(i);
        List paintings = a.getPaintingArray();
        assertFalse(((ValueHolder) paintings).isFault());
        assertEquals(1, paintings.size());
    }
}
Also used : SelectQuery(org.apache.cayenne.query.SelectQuery) Artist(org.apache.cayenne.testdo.testmap.Artist) Expression(org.apache.cayenne.exp.Expression) List(java.util.List) Test(org.junit.Test)

Example 8 with Artist

use of org.apache.cayenne.testdo.testmap.Artist in project cayenne by apache.

the class ToManyListIT method testSavedUnresolvedMerge.

@Test
public void testSavedUnresolvedMerge() throws Exception {
    ToManyList list = createForExistingArtist();
    Painting p1 = context.newObject(Painting.class);
    p1.setPaintingTitle("p1");
    // list being tested is a separate copy from
    // the relationship list that Artist has, so adding a painting
    // here will not add the painting to the array being tested
    ((Artist) list.getRelationshipOwner()).addToPaintingArray(p1);
    context.commitChanges();
    // immediately tag Artist as MODIFIED, since we are messing up with relationship
    // bypassing normal CayenneDataObject methods
    list.getRelationshipOwner().setPersistenceState(PersistenceState.MODIFIED);
    assertTrue("List must be unresolved...", list.isFault());
    list.add(p1);
    assertTrue("List must be unresolved when adding an object...", list.isFault());
    assertTrue(addedToUnresolved(list).contains(p1));
    Painting p2 = context.newObject(Painting.class);
    list.add(p2);
    assertTrue("List must be unresolved when adding an object...", list.isFault());
    assertTrue(addedToUnresolved(list).contains(p2));
    // now resolve the list and see how merge worked
    int size = list.size();
    assertFalse("List must be resolved after checking a size...", list.isFault());
    assertEquals(2, size);
    assertTrue(getValue(list).contains(p2));
    assertTrue(getValue(list).contains(p1));
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist) Painting(org.apache.cayenne.testdo.testmap.Painting) Test(org.junit.Test)

Example 9 with Artist

use of org.apache.cayenne.testdo.testmap.Artist in project cayenne by apache.

the class ToManyListIT method createForExistingArtist.

private ToManyList createForExistingArtist() {
    Artist artist = context.newObject(Artist.class);
    artist.setArtistName("aa");
    context.commitChanges();
    return new ToManyList(artist, Artist.PAINTING_ARRAY.getName());
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist)

Example 10 with Artist

use of org.apache.cayenne.testdo.testmap.Artist in project cayenne by apache.

the class ToManyListIT method testRealRelationship.

@Test
public void testRealRelationship() throws Exception {
    Artist artist = context.newObject(Artist.class);
    artist.setArtistName("aaa");
    Painting p1 = context.newObject(Painting.class);
    p1.setPaintingTitle("p1");
    context.commitChanges();
    context.invalidateObjects(artist);
    ToManyList list = (ToManyList) artist.getPaintingArray();
    assertTrue("List must be unresolved...", list.isFault());
    Painting p2 = context.newObject(Painting.class);
    p2.setPaintingTitle("p2");
    artist.addToPaintingArray(p1);
    artist.addToPaintingArray(p2);
    assertTrue("List must be unresolved...", list.isFault());
    context.commitChanges();
    assertTrue("List must be unresolved...", list.isFault());
    int size = list.size();
    assertFalse("List must be resolved...", list.isFault());
    assertTrue(list.contains(p1));
    assertTrue(list.contains(p2));
    assertEquals(2, size);
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist) Painting(org.apache.cayenne.testdo.testmap.Painting) Test(org.junit.Test)

Aggregations

Artist (org.apache.cayenne.testdo.testmap.Artist)490 Test (org.junit.Test)481 Painting (org.apache.cayenne.testdo.testmap.Painting)145 SelectQuery (org.apache.cayenne.query.SelectQuery)126 Expression (org.apache.cayenne.exp.Expression)67 UnitTestClosure (org.apache.cayenne.unit.di.UnitTestClosure)47 EJBQLQuery (org.apache.cayenne.query.EJBQLQuery)39 List (java.util.List)36 ObjectContext (org.apache.cayenne.ObjectContext)30 SQLTemplate (org.apache.cayenne.query.SQLTemplate)26 ParallelTestContainer (org.apache.cayenne.test.parallel.ParallelTestContainer)26 DataRow (org.apache.cayenne.DataRow)21 ArrayList (java.util.ArrayList)20 ValueHolder (org.apache.cayenne.ValueHolder)18 ArtGroup (org.apache.cayenne.testdo.testmap.ArtGroup)16 LifecycleCallbackRegistry (org.apache.cayenne.reflect.LifecycleCallbackRegistry)15 ObjectId (org.apache.cayenne.ObjectId)14 ROPainting (org.apache.cayenne.testdo.testmap.ROPainting)13 Gallery (org.apache.cayenne.testdo.testmap.Gallery)12 ROArtist (org.apache.cayenne.testdo.testmap.ROArtist)12