Skip to content

Commit

Permalink
OGM-122 exclude or refactor tests not supported by cassandra backend
Browse files Browse the repository at this point in the history
  • Loading branch information
jhalliday authored and gunnarmorling committed May 13, 2015
1 parent cfbb3bb commit dedced0
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 146 deletions.
Expand Up @@ -15,6 +15,7 @@
import org.hibernate.Transaction;
import org.hibernate.ogm.utils.GridDialectType;
import org.hibernate.ogm.utils.OgmTestCase;
import org.hibernate.ogm.utils.SkipByGridDialect;
import org.hibernate.ogm.utils.TestHelper;
import org.junit.Test;

Expand Down Expand Up @@ -88,6 +89,10 @@ public void testBidirectionalManyToMany() {
}

@Test
@SkipByGridDialect(
value = { GridDialectType.CASSANDRA },
comment = "composite PKs in associations not yet supported"
)
public void testManyToManyCompositeId() throws Exception {
Session session = openSession();
Transaction transaction = session.beginTransaction();
Expand Down
Expand Up @@ -6,6 +6,9 @@
*/
package org.hibernate.ogm.backendtck.embeddable;

import java.util.Arrays;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.ogm.utils.GridDialectType;
Expand All @@ -24,7 +27,7 @@
*/
@SkipByGridDialect(
value = { GridDialectType.CASSANDRA },
comment = "MultiAddressAccount.addresses list - bag semantics unsupported (no primary key)"
comment = "POJOs contain lists - bag semantics unsupported (no primary key)"
)
public class EmbeddableExtraTest extends OgmTestCase {

Expand Down Expand Up @@ -99,8 +102,110 @@ public void testElementCollectionOfEmbeddable() throws Exception {
session.close();
}

@Test
public void testPersistEmbeddedWithNullEmbeddedList() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();

AccountWithPhone wombatSoftware = new AccountWithPhone( "1", "Mobile account 1" );
wombatSoftware.setPhoneNumber( null );

session.persist( wombatSoftware );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
AccountWithPhone loadedUser = (AccountWithPhone) session.get( AccountWithPhone.class, wombatSoftware.getId() );
assertThat( loadedUser ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
// It is not null because of the list of elements
assertThat( loadedUser.getPhoneNumber() ).isNotNull();
assertThat( loadedUser.getPhoneNumber().getMain() ).isNull();
assertThat( loadedUser.getPhoneNumber().getAlternatives() ).isEmpty();

session.delete( loadedUser );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( AccountWithPhone.class, wombatSoftware.getId() ) ).isNull();
transaction.commit();
session.close();
}

@Test
public void testPersistWithEmbeddedList() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();
List<String> alternativePhones = Arrays.asList( "+1-222-555-0222", "+1-202-555-0333" );
AccountWithPhone account = new AccountWithPhone( "2", "Mobile account 2" );
account.setPhoneNumber( new PhoneNumber( "+1-222-555-0111", alternativePhones ) );

session.persist( account );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
AccountWithPhone loadedUser = (AccountWithPhone) session.get( AccountWithPhone.class, account.getId() );
assertThat( loadedUser ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
assertThat( loadedUser.getPhoneNumber() ).isNotNull();
assertThat( loadedUser.getPhoneNumber().getMain() ).isEqualTo( account.getPhoneNumber().getMain() );
assertThat( loadedUser.getPhoneNumber().getAlternatives() ).containsOnly(
alternativePhones.toArray(
new Object[alternativePhones.size()]
)
);

session.delete( loadedUser );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( AccountWithPhone.class, account.getId() ) ).isNull();
transaction.commit();
session.close();
}

@Test
public void testPersistWithListEmbeddedInNestedComponent() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();

Order order = new Order(
"order-1",
"Telescope",
new ShippingAddress(
new PhoneNumber( "+1-222-555-0111", Arrays.asList( "+1-222-555-0222", "+1-202-555-0333" ) ),
"Planet road 68"
)
);

session.persist( order );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
Order loadedOrder = (Order) session.get( Order.class, "order-1" );
assertThat( loadedOrder ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
assertThat( loadedOrder.getShippingAddress() ).isNotNull();
assertThat( loadedOrder.getShippingAddress().getPhone() ).isNotNull();
assertThat( loadedOrder.getShippingAddress().getPhone().getMain() ).isEqualTo( "+1-222-555-0111" );
assertThat( loadedOrder.getShippingAddress().getPhone().getAlternatives() ).containsOnly( "+1-222-555-0222", "+1-202-555-0333" );

session.delete( loadedOrder );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( Order.class, "order-1" ) ).isNull();
transaction.commit();
session.close();
}

@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] { MultiAddressAccount.class };
return new Class<?>[] { MultiAddressAccount.class, AccountWithPhone.class, Order.class };
}
}
Expand Up @@ -8,9 +8,6 @@

import static org.fest.assertions.Assertions.assertThat;

import java.util.Arrays;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.ogm.utils.OgmTestCase;
Expand Down Expand Up @@ -123,103 +120,6 @@ public void testNestedEmbeddable() {
session.close();
}

@Test
public void testPersistEmbeddedWithNullEmbeddedList() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();

AccountWithPhone wombatSoftware = new AccountWithPhone( "1", "Mobile account 1" );
wombatSoftware.setPhoneNumber( null );

session.persist( wombatSoftware );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
AccountWithPhone loadedUser = (AccountWithPhone) session.get( AccountWithPhone.class, wombatSoftware.getId() );
assertThat( loadedUser ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
// It is not null because of the list of elements
assertThat( loadedUser.getPhoneNumber() ).isNotNull();
assertThat( loadedUser.getPhoneNumber().getMain() ).isNull();
assertThat( loadedUser.getPhoneNumber().getAlternatives() ).isEmpty();

session.delete( loadedUser );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( AccountWithPhone.class, wombatSoftware.getId() ) ).isNull();
transaction.commit();
session.close();
}

@Test
public void testPersistWithEmbeddedList() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();
List<String> alternativePhones = Arrays.asList( "+1-222-555-0222", "+1-202-555-0333" );
AccountWithPhone account = new AccountWithPhone( "2", "Mobile account 2" );
account.setPhoneNumber( new PhoneNumber( "+1-222-555-0111", alternativePhones ) );

session.persist( account );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
AccountWithPhone loadedUser = (AccountWithPhone) session.get( AccountWithPhone.class, account.getId() );
assertThat( loadedUser ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
assertThat( loadedUser.getPhoneNumber() ).isNotNull();
assertThat( loadedUser.getPhoneNumber().getMain() ).isEqualTo( account.getPhoneNumber().getMain() );
assertThat( loadedUser.getPhoneNumber().getAlternatives() ).containsOnly( alternativePhones.toArray( new Object[alternativePhones.size()] ) );

session.delete( loadedUser );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( AccountWithPhone.class, account.getId() ) ).isNull();
transaction.commit();
session.close();
}

@Test
public void testPersistWithListEmbeddedInNestedComponent() throws Exception {
final Session session = openSession();

Transaction transaction = session.beginTransaction();

Order order = new Order(
"order-1",
"Telescope",
new ShippingAddress(
new PhoneNumber( "+1-222-555-0111", Arrays.asList( "+1-222-555-0222", "+1-202-555-0333" ) ),
"Planet road 68"
)
);

session.persist( order );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
Order loadedOrder = (Order) session.get( Order.class, "order-1" );
assertThat( loadedOrder ).as( "Cannot load persisted object with nested embeddedables" ).isNotNull();
assertThat( loadedOrder.getShippingAddress() ).isNotNull();
assertThat( loadedOrder.getShippingAddress().getPhone() ).isNotNull();
assertThat( loadedOrder.getShippingAddress().getPhone().getMain() ).isEqualTo( "+1-222-555-0111" );
assertThat( loadedOrder.getShippingAddress().getPhone().getAlternatives() ).containsOnly( "+1-222-555-0222", "+1-202-555-0333" );

session.delete( loadedOrder );
transaction.commit();
session.clear();

transaction = session.beginTransaction();
assertThat( session.get( Order.class, "order-1" ) ).isNull();
transaction.commit();
session.close();
}

@Test
public void testNestedEmbeddedWithNullProperties() {
Expand Down Expand Up @@ -273,6 +173,6 @@ public void testNestedEmbeddedWithNullProperties() {

@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] { Account.class, AccountWithPhone.class, Order.class };
return new Class<?>[] { Account.class };
}
}
Expand Up @@ -34,7 +34,10 @@ public class JPAJTATest extends JpaTestCase {
public PackagingRule packaging = new PackagingRule( "persistencexml/transaction-type-jta.xml", Poem.class );

@Test
@SkipByGridDialect(value = GridDialectType.MONGODB, comment = "MongoDB tests runs w/o transaction manager")
@SkipByGridDialect(
value = { GridDialectType.MONGODB, GridDialectType.CASSANDRA },
comment = "MongoDB and Cassandra tests runs w/o transaction manager"
)
public void testBootstrapAndCRUD() throws Exception {

final EntityManagerFactory emf = Persistence.createEntityManagerFactory(
Expand Down

0 comments on commit dedced0

Please sign in to comment.