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")));
}
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());
}
}
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));
}
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());
}
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);
}
Aggregations