Search in sources :

Example 56 with Artist

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

the class DataContextRollbackIT method testRollbackNew.

@Test
public void testRollbackNew() {
    Artist artist = (Artist) context.newObject("Artist");
    artist.setArtistName("a");
    Painting p1 = (Painting) context.newObject("Painting");
    p1.setPaintingTitle("p1");
    p1.setToArtist(artist);
    Painting p2 = (Painting) context.newObject("Painting");
    p2.setPaintingTitle("p2");
    p2.setToArtist(artist);
    Painting p3 = (Painting) context.newObject("Painting");
    p3.setPaintingTitle("p3");
    p3.setToArtist(artist);
    // before:
    assertEquals(artist, p1.getToArtist());
    assertEquals(3, artist.getPaintingArray().size());
    context.rollbackChanges();
    // after:
    assertEquals(PersistenceState.TRANSIENT, artist.getPersistenceState());
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist) Painting(org.apache.cayenne.testdo.testmap.Painting) Test(org.junit.Test)

Example 57 with Artist

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

the class DataContextRollbackIT method testRollbackModifiedObject.

@Test
public void testRollbackModifiedObject() {
    String artistName = "initialTestArtist";
    Artist artist = (Artist) context.newObject("Artist");
    artist.setArtistName(artistName);
    context.commitChanges();
    artist.setArtistName("a new value");
    context.rollbackChanges();
    // Make sure the inmemory changes have been rolled back
    assertEquals(artistName, artist.getArtistName());
    // Commit what's in memory...
    context.commitChanges();
    // .. and ensure that the correct data is in the db
    DataContext freshContext = (DataContext) serverRuntime.newContext();
    assertNotSame(this.context, freshContext);
    SelectQuery query = new SelectQuery(Artist.class);
    query.setQualifier(ExpressionFactory.matchExp("artistName", artistName));
    List<?> queryResults = freshContext.performQuery(query);
    assertEquals(1, queryResults.size());
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist) SelectQuery(org.apache.cayenne.query.SelectQuery) Test(org.junit.Test)

Example 58 with Artist

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

the class DataContextRollbackIT method testRollbackWithMultipleNewObjects.

// Catches a bug where new objects were unregistered within an object iterator, thus
// modifying the collection the iterator was iterating over
// (ConcurrentModificationException)
@Test
public void testRollbackWithMultipleNewObjects() {
    String artistName = "rollbackTestArtist";
    String paintingTitle = "rollbackTestPainting";
    Artist artist = (Artist) context.newObject("Artist");
    artist.setArtistName(artistName);
    Painting painting = (Painting) context.newObject("Painting");
    painting.setPaintingTitle(paintingTitle);
    painting.setToArtist(artist);
    context.rollbackChanges();
    assertEquals(PersistenceState.TRANSIENT, artist.getPersistenceState());
    context.commitChanges();
    // The commit should have made no changes, so
    // perform a fetch to ensure that this artist hasn't been persisted to the db
    DataContext freshContext = (DataContext) serverRuntime.newContext();
    assertNotSame(this.context, freshContext);
    SelectQuery query = new SelectQuery(Artist.class);
    query.setQualifier(ExpressionFactory.matchExp("artistName", artistName));
    List<?> queryResults = freshContext.performQuery(query);
    assertEquals(0, queryResults.size());
}
Also used : Artist(org.apache.cayenne.testdo.testmap.Artist) SelectQuery(org.apache.cayenne.query.SelectQuery) Painting(org.apache.cayenne.testdo.testmap.Painting) Test(org.junit.Test)

Example 59 with Artist

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

the class DataContextSQLTemplateIT method testFetchObjects.

@Test
public void testFetchObjects() throws Exception {
    createFourArtists();
    String template = "SELECT * FROM ARTIST ORDER BY ARTIST_ID";
    SQLTemplate query = sqlTemplateCustomizer.createSQLTemplate(Artist.class, template);
    query.setFetchingDataRows(false);
    List<?> objects = context.performQuery(query);
    assertEquals(4, objects.size());
    assertTrue(objects.get(1) instanceof Artist);
    Artist artist2 = (Artist) objects.get(1);
    assertEquals("artist3", artist2.getArtistName());
}
Also used : SQLTemplate(org.apache.cayenne.query.SQLTemplate) Artist(org.apache.cayenne.testdo.testmap.Artist) Test(org.junit.Test)

Example 60 with Artist

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

the class DataContextSQLTemplateIT method testPageSize.

@Test
public void testPageSize() throws Exception {
    createFourArtists();
    int pageSize = 3;
    // sanity check
    assertTrue(pageSize < 4);
    String template = "SELECT * FROM ARTIST ORDER BY ARTIST_ID";
    SQLTemplate query = sqlTemplateCustomizer.createSQLTemplate(Artist.class, template);
    query.setPageSize(pageSize);
    List<?> objects = context.performQuery(query);
    assertEquals(4, objects.size());
    assertTrue(objects.get(0) instanceof Artist);
    assertTrue(objects instanceof IncrementalFaultList<?>);
    IncrementalFaultList<?> pagedList = (IncrementalFaultList<?>) objects;
    assertEquals(4 - pageSize, pagedList.getUnfetchedObjects());
    // check if we can resolve subsequent pages
    Artist artist = (Artist) objects.get(pageSize);
    int expectUnresolved = 4 - pageSize - pageSize;
    if (expectUnresolved < 0) {
        expectUnresolved = 0;
    }
    assertEquals(expectUnresolved, pagedList.getUnfetchedObjects());
    assertEquals("artist" + (pageSize + 2), artist.getArtistName());
}
Also used : SQLTemplate(org.apache.cayenne.query.SQLTemplate) Artist(org.apache.cayenne.testdo.testmap.Artist) 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