Search in sources :

Example 16 with PlatformLocal

use of org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal in project tomee by apache.

the class ManyToManyComplexPkTests method testAGetBExistingAB.

public void testAGetBExistingAB() throws Exception {
    resetDB();
    beginTransaction();
    try {
        final PlatformLocal platform = findPlatform(new Integer(1));
        final Set<GameLocal> gameSets = platform.getGames();
        assertEquals(2, gameSets.size());
        for (final Iterator iter = gameSets.iterator(); iter.hasNext(); ) {
            final GameLocal game = (GameLocal) iter.next();
            if (game.getId().equals(new Integer(11))) {
                assertEquals("value11", game.getName());
            } else if (game.getId().equals(new Integer(22))) {
                assertEquals("value22", game.getName());
            } else {
                fail();
            }
        }
    } finally {
        completeTransaction();
    }
}
Also used : Iterator(java.util.Iterator) GameLocal(org.apache.openejb.test.entity.cmr.manytomany.GameLocal) PlatformLocal(org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)

Example 17 with PlatformLocal

use of org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal in project tomee by apache.

the class ManyToManyComplexPkTests method testModifyCmrCollectionOusideTx.

public void testModifyCmrCollectionOusideTx() throws Exception {
    resetDB();
    beginTransaction();
    Set games;
    GameLocal newGame;
    try {
        final PlatformLocal platform = findPlatform(new Integer(1));
        newGame = createGame(new Integer(33));
        games = platform.getGames();
    } finally {
        completeTransaction();
    }
    // CMR collections should still be readable
    assertFalse(games.isEmpty());
    assertEquals(2, games.size());
    for (final Iterator iter = games.iterator(); iter.hasNext(); ) {
        final GameLocal game = (GameLocal) iter.next();
        if (game.getId().equals(new Integer(11))) {
            assertEquals("value11", game.getName());
        } else if (game.getId().equals(new Integer(22))) {
            assertEquals("value22", game.getName());
        } else {
            fail();
        }
    }
    // But CMR collections should not be modifiable
    try {
        games.add(newGame);
        fail("expected games.add(game) to throw an IllegalStateException");
    } catch (final IllegalStateException expected) {
    }
    try {
        games.addAll(Arrays.asList(newGame));
        fail("expected games.addAll(Arrays.asList(game)) to throw an IllegalStateException");
    } catch (final IllegalStateException expected) {
    }
    try {
        games.remove(newGame);
        fail("expected games.remove(game) to throw an IllegalStateException");
    } catch (final IllegalStateException expected) {
    }
    try {
        games.removeAll(Arrays.asList(newGame));
        fail("expected games.removeAll(game) to throw an IllegalStateException");
    } catch (final IllegalStateException expected) {
    }
    final Iterator iterator = games.iterator();
    try {
        iterator.remove();
        fail("expected iterator.remove() to throw an ConcurrentModificationException");
    } catch (final ConcurrentModificationException expected) {
    }
}
Also used : ConcurrentModificationException(java.util.ConcurrentModificationException) Set(java.util.Set) HashSet(java.util.HashSet) ResultSet(java.sql.ResultSet) Iterator(java.util.Iterator) GameLocal(org.apache.openejb.test.entity.cmr.manytomany.GameLocal) PlatformLocal(org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)

Example 18 with PlatformLocal

use of org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal in project tomee by apache.

the class ManyToManyComplexPkTests method testBSetAExistingBNewA.

public void testBSetAExistingBNewA() throws Exception {
    resetDB();
    beginTransaction();
    try {
        final PlatformLocal platform = createPlatform(new Integer(4));
        final GameLocal game = findGame(new Integer(11));
        final Set<PlatformLocal> platformSets = game.getPlatforms();
        platformSets.add(platform);
    } finally {
        completeTransaction();
    }
    assertLinked(4, 11);
}
Also used : GameLocal(org.apache.openejb.test.entity.cmr.manytomany.GameLocal) PlatformLocal(org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)

Example 19 with PlatformLocal

use of org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal in project tomee by apache.

the class ManyToManyComplexPkTests method testASetBExistingBNewA.

public void testASetBExistingBNewA() throws Exception {
    resetDB();
    beginTransaction();
    try {
        final PlatformLocal platform = createPlatform(new Integer(4));
        final GameLocal game = findGame(new Integer(11));
        final Set<GameLocal> gameSets = platform.getGames();
        gameSets.add(game);
    } finally {
        completeTransaction();
    }
    assertLinked(4, 11);
}
Also used : GameLocal(org.apache.openejb.test.entity.cmr.manytomany.GameLocal) PlatformLocal(org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)

Example 20 with PlatformLocal

use of org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal in project tomee by apache.

the class ManyToManyComplexPkTests method testASetBDropExisting.

public void testASetBDropExisting() throws Exception {
    resetDB();
    beginTransaction();
    try {
        PlatformLocal platform = findPlatform(new Integer(1));
        platform.setGames(new HashSet<GameLocal>());
        platform = findPlatform(new Integer(2));
        platform.setGames(new HashSet<GameLocal>());
        platform = findPlatform(new Integer(3));
        platform.setGames(new HashSet<GameLocal>());
    } finally {
        completeTransaction();
    }
    assertAllUnlinked();
}
Also used : GameLocal(org.apache.openejb.test.entity.cmr.manytomany.GameLocal) PlatformLocal(org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)

Aggregations

PlatformLocal (org.apache.openejb.test.entity.cmr.manytomany.PlatformLocal)37 GameLocal (org.apache.openejb.test.entity.cmr.manytomany.GameLocal)30 ResultSet (java.sql.ResultSet)12 HashSet (java.util.HashSet)12 Iterator (java.util.Iterator)12 Set (java.util.Set)12 ConcurrentModificationException (java.util.ConcurrentModificationException)8 Connection (java.sql.Connection)2 SQLException (java.sql.SQLException)2 Statement (java.sql.Statement)2 TransactionRolledbackLocalException (javax.ejb.TransactionRolledbackLocalException)2