Example usage for org.hibernate.persister.collection CollectionPersister isManyToMany

List of usage examples for org.hibernate.persister.collection CollectionPersister isManyToMany

Introduction

In this page you can find the example usage for org.hibernate.persister.collection CollectionPersister isManyToMany.

Prototype

boolean isManyToMany();

Source Link

Document

Is this a many-to-many association?

Usage

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has other changes
 * //from www . j av a2 s. c o m
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotLinkChildLogsToThatOfAnEditedOwnerForUpdatedItemsInACollectionMappedAsManyToMany()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    Role role = user.getRoles().iterator().next();
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));
    assertEquals(false, auditLogService.isAudited(Role.class));

    startAuditing(User.class);
    startAuditing(Role.class);
    assertEquals(true, auditLogService.isAudited(User.class));
    assertEquals(true, auditLogService.isAudited(Role.class));

    user.setUsername("new user name");
    role.setDescription("Testing");
    us.saveUser(user, null);

    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    assertEquals(0, userLogs.get(0).getChildAuditLogs().size());
    List<AuditLog> roleLogs = getAllLogs(role.getRole(), Role.class, Collections.singletonList(UPDATED));
    assertEquals(1, roleLogs.size());
    assertNull(roleLogs.get(0).getParentAuditLog());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has no other changes
 * /* w  w w.j a  va  2 s.  co m*/
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotMarkOwnerAsUpdatedWhenItemIsUpdatedAndIsInACollectionMappedAsManyToMany()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    Role role = user.getRoles().iterator().next();
    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));
    assertEquals(false, auditLogService.isAudited(Role.class));

    startAuditing(User.class);
    startAuditing(Role.class);
    assertEquals(true, auditLogService.isAudited(User.class));
    assertEquals(true, auditLogService.isAudited(Role.class));

    role.setDescription("Testing");
    us.saveUser(user, null);

    assertEquals(0, getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED)).size());
    List<AuditLog> roleLogs = getAllLogs(role.getRole(), Role.class, Collections.singletonList(UPDATED));
    assertEquals(1, roleLogs.size());
    assertNull(roleLogs.get(0).getParentAuditLog());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has no other changes
 * /*from   ww w.  j a  v a2s .c  o  m*/
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldCreateLogForTheOwnerAndNotTheItemThatIsRemovedFromACollectionMappedAsManyToMany()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    Role role = user.getRoles().iterator().next();
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));

    startAuditing(User.class);
    assertEquals(true, auditLogService.isAudited(User.class));

    user.removeRole(role);
    us.saveUser(user, null);

    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    //But should create an audit log for the owner
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    AuditLog al = userLogs.get(0);
    assertEquals(0, al.getChildAuditLogs().size());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has other changes
 * /*from   w w  w .j  ava  2 s .  c  o m*/
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotCreateLogForAnItemRemovedFromACollectionMappedAsManyToManyAndOwnerIsEdited()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    Role role = user.getRoles().iterator().next();
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));

    startAuditing(User.class);
    assertEquals(true, auditLogService.isAudited(User.class));

    user.setUsername("New");
    user.removeRole(role);
    us.saveUser(user, null);

    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    //But should create an audit log for the owner
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    AuditLog al = userLogs.get(0);
    assertEquals(0, al.getChildAuditLogs().size());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has no other changes and the collection item is new
 * //from w ww  .j  av a  2  s.c  om
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotLinkLogsToThatOfTheOwnerForANewItemAddedToACollectionMappedAsManyToMany()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));
    assertEquals(false, auditLogService.isAudited(Role.class));

    startAuditing(User.class);
    startAuditing(Role.class);
    assertEquals(true, auditLogService.isAudited(User.class));
    assertEquals(true, auditLogService.isAudited(Role.class));

    Role role = new Role("new role", "new desc");
    user.addRole(role);
    us.saveUser(user, null);

    List<AuditLog> roleLogs = getAllLogs(role.getRole(), Role.class, Collections.singletonList(CREATED));
    assertEquals(1, roleLogs.size());
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    AuditLog al = userLogs.get(0);
    assertEquals(0, al.getChildAuditLogs().size());
    assertNull(roleLogs.get(0).getParentAuditLog());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has no other changes and collection item exists
 * /*ww  w  .j a  v  a 2 s . c  om*/
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotLinkLogsToThatOfTheOwnerForAnExistingItemAddedToACollectionMappedAsManyToMany()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    Role role = us.getRole("Anonymous");
    assertNotNull(role);
    assertFalse(user.getRoles().contains(role));
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));

    startAuditing(User.class);
    assertEquals(true, auditLogService.isAudited(User.class));

    user.addRole(role);
    us.saveUser(user, null);

    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    assertEquals(0, userLogs.get(0).getChildAuditLogs().size());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has other changes and collection item is new
 * //w ww .  ja v a  2 s .c  o  m
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotLinkLogsToThatOfTheOwnerForANewItemAddedToACollectionMappedAsManyToManyAndOwnerIsEdited()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    assertEquals(1, user.getRoles().size());
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));
    assertEquals(false, auditLogService.isAudited(Role.class));

    startAuditing(User.class);
    startAuditing(Role.class);
    assertEquals(true, auditLogService.isAudited(User.class));
    assertEquals(true, auditLogService.isAudited(Role.class));

    user.setUsername("New");
    Role role = new Role("new role", "new desc");
    user.addRole(role);
    us.saveUser(user, null);

    List<AuditLog> roleLogs = getAllLogs(role.getRole(), Role.class, Collections.singletonList(CREATED));
    assertEquals(1, roleLogs.size());
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    AuditLog al = userLogs.get(0);
    assertEquals(0, al.getChildAuditLogs().size());
    assertNull(roleLogs.get(0).getParentAuditLog());
}

From source file:org.openmrs.module.auditlog.CollectionsAuditLogBehaviorTest.java

License:Open Source License

/**
 * This tests assumes that the owner has other changes and collection item exists
 * /*from  w w  w .  j a  v  a 2s .c o m*/
 * @throws Exception
 */
@Test
@NotTransactional
public void shouldNotLinkLogsToThatOfTheOwnerForAnExistingItemAddedToACollectionMappedAsManyToManyAndOwnerIsEdited()
        throws Exception {
    UserService us = Context.getUserService();
    User user = us.getUser(501);
    Role role = us.getRole("Anonymous");
    assertNotNull(role);
    assertFalse(user.getRoles().contains(role));
    assertEquals(0, getAllLogs(user.getId(), User.class, null).size());
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("roles", User.class, null);
    assertTrue(cp.isManyToMany());
    assertEquals(false, auditLogService.isAudited(User.class));

    startAuditing(User.class);
    assertEquals(true, auditLogService.isAudited(User.class));

    user.setUsername("New");
    user.addRole(role);
    us.saveUser(user, null);

    assertEquals(0, getAllLogs(role.getRole(), Role.class, null).size());
    List<AuditLog> userLogs = getAllLogs(user.getId(), User.class, Collections.singletonList(UPDATED));
    assertEquals(1, userLogs.size());
    assertEquals(0, userLogs.get(0).getChildAuditLogs().size());
}

From source file:org.openmrs.module.auditlog.strategy.AllExceptAuditStrategyTest.java

License:Open Source License

/**
 * @verifies not mark association types for many to many collections as audited
 * @see AllExceptAuditStrategy#startAuditing(java.util.Set>)
 *//*from w  ww .  jav a 2s .  co m*/
@Test
public void startAuditing_shouldNotMarkAssociationTypesForManyToManyCollectionsAsAudited() throws Exception {
    setAuditConfiguration(AuditStrategy.ALL_EXCEPT, "org.openmrs.Location,org.openmrs.LocationTag", false);
    assertFalse(auditLogService.isAudited(Location.class));
    assertFalse(auditLogService.isAudited(LocationTag.class));
    assertFalse(helper.isImplicitlyAudited(LocationTag.class));
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("tags", Location.class, null);
    assertTrue(cp.isManyToMany());
    startAuditing(Location.class);
    assertTrue(auditLogService.isAudited(Location.class));
    assertFalse(auditLogService.isAudited(LocationTag.class));
    assertFalse(helper.isImplicitlyAudited(LocationTag.class));
}

From source file:org.openmrs.module.auditlog.strategy.NoneExceptAuditStrategyTest.java

License:Open Source License

/**
 * @verifies not mark association types for many to many collections as audited
 * @see NoneExceptAuditStrategy#startAuditing(java.util.Set>)
 *//*from w ww  .java  2 s .  c  om*/
@Test
public void startAuditing_shouldNotMarkAssociationTypesForManyToManyCollectionsAsAudited() throws Exception {
    assertFalse(auditLogService.isAudited(Location.class));
    assertFalse(auditLogService.isAudited(LocationTag.class));
    assertFalse(helper.isImplicitlyAudited(LocationTag.class));
    CollectionPersister cp = AuditLogUtil.getCollectionPersister("tags", Location.class, null);
    assertTrue(cp.isManyToMany());
    startAuditing(Location.class);
    assertTrue(auditLogService.isAudited(Location.class));
    assertFalse(auditLogService.isAudited(LocationTag.class));
    assertFalse(helper.isImplicitlyAudited(LocationTag.class));
}