use of org.olat.modules.assessment.AssessmentEntry in project OpenOLAT by OpenOLAT.
the class AssessmentTestSessionDAOTest method getUserTestSessionsStatistics.
@Test
public void getUserTestSessionsStatistics() {
// prepare a test and a user
RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-3");
AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry);
dbInstance.commit();
AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, false);
Assert.assertNotNull(testSession);
dbInstance.commit();
for (int i = 0; i < 4; i++) {
ParentPartItemRefs parentParts = new ParentPartItemRefs();
String sectionIdentifier = UUID.randomUUID().toString();
parentParts.setSectionIdentifier(sectionIdentifier);
String testPartIdentifier = UUID.randomUUID().toString();
parentParts.setTestPartIdentifier(testPartIdentifier);
AssessmentItemSession itemSession = itemSessionDao.createAndPersistAssessmentItemSession(testSession, parentParts, UUID.randomUUID().toString());
Assert.assertNotNull(itemSession);
dbInstance.commit();
if (i % 2 == 0) {
itemSession.setManualScore(new BigDecimal(3));
itemSessionDao.merge(itemSession);
}
}
dbInstance.commitAndCloseSession();
List<AssessmentTestSessionStatistics> sessionsStatistics = testSessionDao.getUserTestSessionsStatistics(courseEntry, subIdent, assessedIdentity);
Assert.assertNotNull(sessionsStatistics);
Assert.assertEquals(1, sessionsStatistics.size());
AssessmentTestSessionStatistics sessionStatistics = sessionsStatistics.get(0);
Assert.assertNotNull(sessionStatistics.getTestSession());
Assert.assertEquals(testSession, sessionStatistics.getTestSession());
Assert.assertEquals(2, sessionStatistics.getNumOfCorrectedItems());
}
use of org.olat.modules.assessment.AssessmentEntry in project OpenOLAT by OpenOLAT.
the class AssessmentTestSessionDAOTest method hasActiveTestSession_negative.
@Test
public void hasActiveTestSession_negative() {
// prepare a test and a user
RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry();
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-5");
AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, null, testEntry);
dbInstance.commit();
// create an assessment test session
AssessmentTestSession testSession1 = testSessionDao.createAndPersistTestSession(testEntry, null, null, assessmentEntry, assessedIdentity, null, true);
Assert.assertNotNull(testSession1);
dbInstance.commitAndCloseSession();
// check that there isn't any active test session (only author mode)
boolean hasTestSession = testSessionDao.hasActiveTestSession(testEntry);
Assert.assertFalse(hasTestSession);
}
use of org.olat.modules.assessment.AssessmentEntry in project OpenOLAT by OpenOLAT.
the class AssessmentTestSessionDAOTest method createTestSession_course.
@Test
public void createTestSession_course() {
// prepare a test and a user
RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry();
RepositoryEntry courseEntry = JunitTestHelper.createAndPersistRepositoryEntry();
String subIdent = UUID.randomUUID().toString();
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("session-2");
AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, courseEntry, subIdent, testEntry);
dbInstance.commit();
AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, courseEntry, subIdent, assessmentEntry, assessedIdentity, null, false);
Assert.assertNotNull(testSession);
dbInstance.commit();
}
use of org.olat.modules.assessment.AssessmentEntry in project OpenOLAT by OpenOLAT.
the class AssessmentItemSessionDAOTest method createAndGetItemSession.
@Test
public void createAndGetItemSession() {
// prepare a test and a user
RepositoryEntry testEntry = JunitTestHelper.createAndPersistRepositoryEntry();
Identity assessedIdentity = JunitTestHelper.createAndPersistIdentityAsRndUser("response-session-1");
AssessmentEntry assessmentEntry = assessmentService.getOrCreateAssessmentEntry(assessedIdentity, null, testEntry, "-", testEntry);
dbInstance.commit();
String itemIdentifier = UUID.randomUUID().toString();
ParentPartItemRefs parentParts = new ParentPartItemRefs();
String sectionIdentifier = UUID.randomUUID().toString();
parentParts.setSectionIdentifier(sectionIdentifier);
String testPartIdentifier = UUID.randomUUID().toString();
parentParts.setTestPartIdentifier(testPartIdentifier);
// make test, item and response
AssessmentTestSession testSession = testSessionDao.createAndPersistTestSession(testEntry, testEntry, "_", assessmentEntry, assessedIdentity, null, true);
Assert.assertNotNull(testSession);
AssessmentItemSession itemSession = itemSessionDao.createAndPersistAssessmentItemSession(testSession, parentParts, itemIdentifier);
Assert.assertNotNull(itemSession);
dbInstance.commitAndCloseSession();
AssessmentItemSession reloadedItemSession = itemSessionDao.getAssessmentItemSession(testSession, itemIdentifier);
Assert.assertNotNull(reloadedItemSession);
Assert.assertNotNull(reloadedItemSession.getCreationDate());
Assert.assertNotNull(reloadedItemSession.getLastModified());
Assert.assertEquals(itemIdentifier, reloadedItemSession.getAssessmentItemIdentifier());
Assert.assertEquals(sectionIdentifier, reloadedItemSession.getSectionIdentifier());
Assert.assertEquals(testPartIdentifier, reloadedItemSession.getTestPartIdentifier());
}
use of org.olat.modules.assessment.AssessmentEntry in project OpenOLAT by OpenOLAT.
the class OLATUpgrade_11_0_0 method convertUserEfficiencyStatemen.
private void convertUserEfficiencyStatemen(RepositoryEntry courseEntry) {
try {
final ICourse course = CourseFactory.loadCourse(courseEntry);
CourseNode rootNode = course.getRunStructure().getRootNode();
Set<Long> identityKeys = new HashSet<>(loadIdentityKeyOfAssessmentEntries(courseEntry, rootNode.getIdent()));
int count = 0;
List<UserEfficiencyStatementLight> statements = getUserEfficiencyStatements(courseEntry);
for (UserEfficiencyStatementLight statement : statements) {
Identity identity = statement.getIdentity();
if (!identityKeys.contains(identity.getKey())) {
AssessmentEntry entry = createAssessmentEntry(identity, null, course, courseEntry, rootNode.getIdent());
if (statement.getScore() != null) {
entry.setScore(new BigDecimal(statement.getScore()));
}
if (statement.getPassed() != null) {
entry.setPassed(statement.getPassed());
}
dbInstance.getCurrentEntityManager().persist(entry);
if (count++ % 25 == 0) {
dbInstance.commitAndCloseSession();
}
}
}
} catch (Exception e) {
log.error("Error with " + courseEntry.getKey() + " " + courseEntry, e);
}
dbInstance.commitAndCloseSession();
}
Aggregations