/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.modules.assessment.manager;
import java.util.List;
import java.util.UUID;
import org.junit.Assert;
import org.junit.Test;
import org.olat.basesecurity.GroupRoles;
import org.olat.core.commons.persistence.DB;
import org.olat.core.id.Identity;
import org.olat.group.BusinessGroup;
import org.olat.group.manager.BusinessGroupDAO;
import org.olat.group.manager.BusinessGroupRelationDAO;
import org.olat.modules.assessment.AssessmentEntry;
import org.olat.repository.RepositoryEntry;
import org.olat.test.JunitTestHelper;
import org.olat.test.OlatTestCase;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* Initial date: 20.07.2015<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class AssessmentEntryDAOTest extends OlatTestCase {
@Autowired
private DB dbInstance;
@Autowired
private BusinessGroupDAO businessGroupDao;
@Autowired
private AssessmentEntryDAO assessmentEntryDao;
@Autowired
private BusinessGroupRelationDAO businessGroupRelationDao;
@Test
public void createAssessmentEntry() {
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-1");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = "39485349759";
AssessmentEntry nodeAssessment = assessmentEntryDao
.createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry);
Assert.assertNotNull(nodeAssessment);
dbInstance.commitAndCloseSession();
//check values
Assert.assertNotNull(nodeAssessment.getKey());
Assert.assertNotNull(nodeAssessment.getCreationDate());
Assert.assertNotNull(nodeAssessment.getLastModified());
Assert.assertEquals(assessedIdentity, nodeAssessment.getIdentity());
Assert.assertEquals(entry, nodeAssessment.getRepositoryEntry());
Assert.assertEquals(subIdent, nodeAssessment.getSubIdent());
}
@Test
public void createAssessmentEntry_anonymous() {
String anonymousIdentifier = UUID.randomUUID().toString();
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = "39485349759";
AssessmentEntry nodeAssessment = assessmentEntryDao
.createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entry);
Assert.assertNotNull(nodeAssessment);
dbInstance.commitAndCloseSession();
//check values
Assert.assertNotNull(nodeAssessment.getKey());
Assert.assertNotNull(nodeAssessment.getCreationDate());
Assert.assertNotNull(nodeAssessment.getLastModified());
Assert.assertEquals(anonymousIdentifier, nodeAssessment.getAnonymousIdentifier());
Assert.assertEquals(entry, nodeAssessment.getRepositoryEntry());
Assert.assertEquals(subIdent, nodeAssessment.getSubIdent());
}
@Test
public void loadCourseNodeAssessmentById() {
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-2");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessment = assessmentEntryDao
.createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry);
dbInstance.commitAndCloseSession();
AssessmentEntry reloadedAssessment = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment.getKey());
Assert.assertEquals(nodeAssessment.getKey(), reloadedAssessment.getKey());
Assert.assertEquals(nodeAssessment, reloadedAssessment);
Assert.assertEquals(assessedIdentity, reloadedAssessment.getIdentity());
Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry());
Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent());
}
@Test
public void loadAssessmentEntry() {
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-3");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessment = assessmentEntryDao
.createAssessmentEntry(assessedIdentity, null, entry, subIdent, entry);
dbInstance.commitAndCloseSession();
AssessmentEntry reloadedAssessment = assessmentEntryDao
.loadAssessmentEntry(assessedIdentity, null, entry, subIdent);
Assert.assertEquals(nodeAssessment.getKey(), reloadedAssessment.getKey());
Assert.assertEquals(nodeAssessment, reloadedAssessment);
Assert.assertEquals(assessedIdentity, reloadedAssessment.getIdentity());
Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry());
Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent());
}
@Test
public void loadAssessmentEntry_anonymous() {
String anonymousIdentifier = UUID.randomUUID().toString();
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessment = assessmentEntryDao
.createAssessmentEntry(null, anonymousIdentifier, entry, subIdent, entry);
dbInstance.commitAndCloseSession();
AssessmentEntry reloadedAssessment = assessmentEntryDao
.loadAssessmentEntry(null, anonymousIdentifier, entry, subIdent);
Assert.assertEquals(nodeAssessment.getKey(), reloadedAssessment.getKey());
Assert.assertEquals(nodeAssessment, reloadedAssessment);
Assert.assertEquals(anonymousIdentifier, reloadedAssessment.getAnonymousIdentifier());
Assert.assertEquals(entry, reloadedAssessment.getRepositoryEntry());
Assert.assertEquals(subIdent, reloadedAssessment.getSubIdent());
}
@Test
public void loadAssessmentEntry_specificTest() {
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-5");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessmentRef = assessmentEntryDao
.createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry);
dbInstance.commitAndCloseSession();
AssessmentEntry reloadedAssessmentRef = assessmentEntryDao
.loadAssessmentEntry(assessedIdentity, entry, subIdent, refEntry);
Assert.assertEquals(nodeAssessmentRef.getKey(), reloadedAssessmentRef.getKey());
Assert.assertEquals(nodeAssessmentRef, reloadedAssessmentRef);
Assert.assertEquals(assessedIdentity, reloadedAssessmentRef.getIdentity());
Assert.assertEquals(entry, reloadedAssessmentRef.getRepositoryEntry());
Assert.assertEquals(subIdent, reloadedAssessmentRef.getSubIdent());
}
@Test
public void resetAssessmentEntry() {
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-6");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessmentRef = assessmentEntryDao
.createAssessmentEntry(assessedIdentity, null, entry, subIdent, refEntry, 2.0f, Boolean.TRUE);
dbInstance.commitAndCloseSession();
AssessmentEntry resetedAssessmentRef = assessmentEntryDao
.resetAssessmentEntry(nodeAssessmentRef);
dbInstance.commitAndCloseSession();
Assert.assertEquals(nodeAssessmentRef, resetedAssessmentRef);
Assert.assertEquals(assessedIdentity, resetedAssessmentRef.getIdentity());
Assert.assertNull(resetedAssessmentRef.getScore());
Assert.assertNull(resetedAssessmentRef.getPassed());
Assert.assertEquals(new Integer(0), resetedAssessmentRef.getAttempts());
Assert.assertNull(resetedAssessmentRef.getCompletion());
// double check by reloading the entry
AssessmentEntry reloadedAssessmentRef = assessmentEntryDao
.loadAssessmentEntryById(resetedAssessmentRef.getKey());
dbInstance.commitAndCloseSession();
Assert.assertEquals(nodeAssessmentRef, reloadedAssessmentRef);
Assert.assertNull(reloadedAssessmentRef.getScore());
Assert.assertNull(reloadedAssessmentRef.getPassed());
Assert.assertEquals(new Integer(0), reloadedAssessmentRef.getAttempts());
Assert.assertNull(reloadedAssessmentRef.getCompletion());
}
@Test
public void loadAssessmentEntries_subIdent() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-7");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-8");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessmentId1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessmentId2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
// load with our subIdent above
List<AssessmentEntry> assessmentEntries = assessmentEntryDao
.loadAssessmentEntryBySubIdent(entry, subIdent);
Assert.assertNotNull(assessmentEntries);
Assert.assertEquals(2, assessmentEntries.size());
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId1));
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId2));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId3));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId4));
}
@Test
public void getAllIdentitiesWithAssessmentData() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-9");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-10");
Identity assessedIdentity3 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-11");
Identity assessedIdentity4 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-12");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
assessmentEntryDao.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
assessmentEntryDao.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
assessmentEntryDao.createAssessmentEntry(assessedIdentity3, null, entry, null, entry, 3.0f, Boolean.FALSE);
assessmentEntryDao.createAssessmentEntry(assessedIdentity4, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
// id 1,2,3 are in the entry, but 4 is in an other entry and must not appears in the list
List<Identity> assessedIdentities = assessmentEntryDao.getAllIdentitiesWithAssessmentData(entry);
Assert.assertNotNull(assessedIdentities);
Assert.assertEquals(3, assessedIdentities.size());
Assert.assertTrue(assessedIdentities.contains(assessedIdentity1));
Assert.assertTrue(assessedIdentities.contains(assessedIdentity2));
Assert.assertTrue(assessedIdentities.contains(assessedIdentity3));
Assert.assertFalse(assessedIdentities.contains(assessedIdentity4));
}
@Test
public void loadAssessmentEntriesByAssessedIdentity() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-13");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-14");
Identity assessedIdentity3 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-15");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessmentId1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessmentId2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
// load for identity 1
List<AssessmentEntry> assessmentEntriesId1 = assessmentEntryDao
.loadAssessmentEntriesByAssessedIdentity(assessedIdentity1, entry);
Assert.assertNotNull(assessmentEntriesId1);
Assert.assertEquals(1, assessmentEntriesId1.size());
Assert.assertTrue(assessmentEntriesId1.contains(nodeAssessmentId1));
Assert.assertFalse(assessmentEntriesId1.contains(nodeAssessmentId2));
Assert.assertFalse(assessmentEntriesId1.contains(nodeAssessmentId3));
Assert.assertFalse(assessmentEntriesId1.contains(nodeAssessmentId4));
//load for identity 2
List<AssessmentEntry> assessmentEntriesId2 = assessmentEntryDao
.loadAssessmentEntriesByAssessedIdentity(assessedIdentity2, entry);
Assert.assertNotNull(assessmentEntriesId2);
Assert.assertEquals(2, assessmentEntriesId2.size());
Assert.assertFalse(assessmentEntriesId2.contains(nodeAssessmentId1));
Assert.assertTrue(assessmentEntriesId2.contains(nodeAssessmentId2));
Assert.assertTrue(assessmentEntriesId2.contains(nodeAssessmentId3));
Assert.assertFalse(assessmentEntriesId2.contains(nodeAssessmentId4));
//load for identity 3
List<AssessmentEntry> assessmentEntriesId3 = assessmentEntryDao
.loadAssessmentEntriesByAssessedIdentity(assessedIdentity3, entry);
Assert.assertNotNull(assessmentEntriesId3);
Assert.assertEquals(0, assessmentEntriesId3.size());
}
@Test
public void loadAssessmentEntryByGroup() {
// a simulated course with 2 groups
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-16");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-17");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
BusinessGroup group1 = businessGroupDao.createAndPersist(null, "assessment-bg-1", "assessment-bg-1-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group1, entry);
BusinessGroup group2 = businessGroupDao.createAndPersist(null, "assessment-bg-2", "assessment-bg-2-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group2, entry);
businessGroupRelationDao.addRole(assessedIdentity1, group1, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity2, group1, GroupRoles.participant.name());
dbInstance.commitAndCloseSession();
// some assessment entries
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessmentId1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessmentId2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
//load the assessment entries of entry
List<AssessmentEntry> assessmentEntries = assessmentEntryDao.loadAssessmentEntryByGroup(group1.getBaseGroup(), entry, subIdent);
Assert.assertNotNull(assessmentEntries);
Assert.assertEquals(2, assessmentEntries.size());
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId1));
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId2));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId3));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId4));
}
@Test
public void removeEntryForReferenceEntry() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-18");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-19");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessment1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessment2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessment3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessment4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
// delete by reference
int affectedRows = assessmentEntryDao.removeEntryForReferenceEntry(refEntry);
dbInstance.commitAndCloseSession();
Assert.assertEquals(3, affectedRows);
//check
AssessmentEntry deletedAssessmentEntry1 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment1.getKey());
Assert.assertNotNull(deletedAssessmentEntry1);
Assert.assertNull(deletedAssessmentEntry1.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry2 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment2.getKey());
Assert.assertNotNull(deletedAssessmentEntry2);
Assert.assertNull(deletedAssessmentEntry2.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry3 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment3.getKey());
Assert.assertNotNull(deletedAssessmentEntry3);
Assert.assertNotNull(deletedAssessmentEntry3.getReferenceEntry());
Assert.assertEquals(entry, deletedAssessmentEntry3.getReferenceEntry());
AssessmentEntry deletedAssessmentEntry4 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment4.getKey());
Assert.assertNotNull(deletedAssessmentEntry4);
Assert.assertNull(deletedAssessmentEntry4.getReferenceEntry());
}
@Test
public void deleteEntryForRepositoryEntry() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-20");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-21");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
AssessmentEntry nodeAssessment1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessment2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessment3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessment4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
dbInstance.commitAndCloseSession();
// delete by reference
assessmentEntryDao.deleteEntryForRepositoryEntry(entry);
dbInstance.commitAndCloseSession();
//check
AssessmentEntry deletedAssessmentEntry1 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment1.getKey());
Assert.assertNull(deletedAssessmentEntry1);
AssessmentEntry deletedAssessmentEntry2 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment2.getKey());
Assert.assertNull(deletedAssessmentEntry2);
AssessmentEntry deletedAssessmentEntry3 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment3.getKey());
Assert.assertNull(deletedAssessmentEntry3);
AssessmentEntry deletedAssessmentEntry4 = assessmentEntryDao.loadAssessmentEntryById(nodeAssessment4.getKey());
Assert.assertNotNull(deletedAssessmentEntry4);
}
@Test
public void loadAssessmentEntryBySubIdentWithStatus() {
Identity assessedIdentity1 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-22");
Identity assessedIdentity2 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-23");
Identity assessedIdentity3 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-24");
Identity assessedIdentity4 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-25");
Identity assessedIdentity5 = JunitTestHelper.createAndPersistIdentityAsRndUser("as-node-25");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry refEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
BusinessGroup group = businessGroupDao.createAndPersist(null, "rel-bg-part-1", "rel-bgis-1-desc", -1, -1, false, false, false, false, false);
businessGroupRelationDao.addRelationToResource(group, entry);
businessGroupRelationDao.addRelationToResource(group, refEntry);
businessGroupRelationDao.addRole(assessedIdentity1, group, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity2, group, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity3, group, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity4, group, GroupRoles.participant.name());
businessGroupRelationDao.addRole(assessedIdentity5, group, GroupRoles.coach.name());
AssessmentEntry nodeAssessmentId1 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity1, null, entry, subIdent, refEntry);
AssessmentEntry nodeAssessmentId2 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, subIdent, refEntry, 0.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId3 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, entry, null, entry, 12.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId4 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity2, null, refEntry, subIdent, refEntry, 3.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId5 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity3, null, entry, subIdent, refEntry, 6.0f, Boolean.TRUE);
AssessmentEntry nodeAssessmentId6 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity4, null, entry, subIdent, refEntry, 1.0f, Boolean.FALSE);
AssessmentEntry nodeAssessmentId7 = assessmentEntryDao
.createAssessmentEntry(assessedIdentity5, null, entry, subIdent, refEntry, 10.0f, Boolean.TRUE);
dbInstance.commitAndCloseSession();
// load with our subIdent above
List<AssessmentEntry> assessmentEntries = assessmentEntryDao
.loadAssessmentEntryBySubIdentWithStatus(entry, subIdent, null, true);
Assert.assertNotNull(assessmentEntries);
Assert.assertEquals(2, assessmentEntries.size());
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId1));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId2));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId3));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId4));
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId5));
Assert.assertTrue(assessmentEntries.contains(nodeAssessmentId6));
Assert.assertFalse(assessmentEntries.contains(nodeAssessmentId7));
}
}