From 0a3e1f94436b950881d03f466bab7ee8092cec49 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 25 Oct 2013 15:34:57 +0200 Subject: [PATCH] OO-830: update the basiclti-util library --- pom.xml | 2 +- .../UserCourseInformationsManagerTest.java | 107 ++++++------------ 2 files changed, 33 insertions(+), 76 deletions(-) diff --git a/pom.xml b/pom.xml index 3c312e61cb5..0ec8dca59c8 100644 --- a/pom.xml +++ b/pom.xml @@ -1708,7 +1708,7 @@ <dependency> <groupId>org.sakaiproject.basiclti</groupId> <artifactId>basiclti-util</artifactId> - <version>2.2-SNAPSHOT</version> + <version>2.10.SP1</version> </dependency> <!-- J2EE dependencies but provided --> <dependency> diff --git a/src/test/java/org/olat/course/assessment/manager/UserCourseInformationsManagerTest.java b/src/test/java/org/olat/course/assessment/manager/UserCourseInformationsManagerTest.java index c8cc5d67c68..9d0316529bb 100644 --- a/src/test/java/org/olat/course/assessment/manager/UserCourseInformationsManagerTest.java +++ b/src/test/java/org/olat/course/assessment/manager/UserCourseInformationsManagerTest.java @@ -19,18 +19,16 @@ */ package org.olat.course.assessment.manager; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.UUID; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; import org.junit.Assert; import org.junit.Test; -import org.olat.core.CoreSpringFactory; import org.olat.core.commons.persistence.DB; import org.olat.core.id.Identity; -import org.olat.core.logging.OLog; -import org.olat.core.logging.Tracing; import org.olat.course.ICourse; import org.olat.course.assessment.UserCourseInformations; import org.olat.restapi.repository.course.CoursesWebService; @@ -45,9 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; * */ public class UserCourseInformationsManagerTest extends OlatTestCase { - - private static final OLog log = Tracing.createLoggerFor(UserCourseInformationsManagerTest.class); - + @Autowired private DB dbInstance; @Autowired @@ -55,7 +51,7 @@ public class UserCourseInformationsManagerTest extends OlatTestCase { @Test public void createUpdateCourseInfos() { - Identity user = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-2-" + UUID.randomUUID().toString()); + Identity user = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-1-" + UUID.randomUUID().toString()); ICourse course = CoursesWebService.createEmptyCourse(user, "course-launch-dates", "course long name", null); dbInstance.commitAndCloseSession(); @@ -76,78 +72,39 @@ public class UserCourseInformationsManagerTest extends OlatTestCase { } @Test - public void updateSetLaunchDates_concurrent() { - Identity user = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-1-" + UUID.randomUUID().toString()); + public void getInitialLaunchDate() { + Identity user = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-2-" + UUID.randomUUID().toString()); ICourse course = CoursesWebService.createEmptyCourse(user, "course-launch-dates", "course long name", null); dbInstance.commitAndCloseSession(); - - int numOfThreads = 25; - final CountDownLatch doneSignal = new CountDownLatch(numOfThreads); - - SetLaunchDatesThread[] threads = new SetLaunchDatesThread[numOfThreads]; - for(int i=numOfThreads; i-->0; ) { - threads[i] = new SetLaunchDatesThread(user, course.getResourceableId(), doneSignal); - } - for(int i=numOfThreads; i-->0; ) { - threads[i].start(); - } - - try { - boolean interrupt = doneSignal.await(240, TimeUnit.SECONDS); - Assert.assertTrue("Test takes too long (more than 10s)", interrupt); - } catch (InterruptedException e) { - Assert.fail("" + e.getMessage()); - } + userCourseInformationsManager.updateUserCourseInformations(course.getResourceableId(), user); + dbInstance.commitAndCloseSession(); - int countError = 0; - for(int i=numOfThreads; i-->0; ) { - countError += threads[i].getErrorCount(); - } - Assert.assertEquals(0, countError); - - UserCourseInformations infos = userCourseInformationsManager.getUserCourseInformations(course.getResourceableId(), user); - Assert.assertEquals(1250, infos.getVisit()); + Date launchDate = userCourseInformationsManager.getInitialLaunchDate(course.getResourceableId(), user); + Assert.assertNotNull(launchDate); } - - private class SetLaunchDatesThread extends Thread { - - private AtomicInteger errorCounter = new AtomicInteger(); - - private final Identity user; - private final Long courseResourceableId; - private final CountDownLatch doneSignal; + @Test + public void getInitialLaunchDates() { + Identity user1 = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-3-" + UUID.randomUUID().toString()); + Identity user2 = JunitTestHelper.createAndPersistIdentityAsUser("user-launch-4-" + UUID.randomUUID().toString()); + ICourse course = CoursesWebService.createEmptyCourse(user1, "course-launch-dates", "course long name", null); + dbInstance.commitAndCloseSession(); - public SetLaunchDatesThread(Identity user, Long courseResourceableId, CountDownLatch doneSignal) { - this.user = user; - this.doneSignal = doneSignal; - this.courseResourceableId = courseResourceableId; - } + userCourseInformationsManager.updateUserCourseInformations(course.getResourceableId(), user1); + userCourseInformationsManager.updateUserCourseInformations(course.getResourceableId(), user2); + dbInstance.commitAndCloseSession(); - public int getErrorCount() { - return errorCounter.get(); - } - - @Override - public void run() { - try { - Thread.sleep(10); - } catch (InterruptedException e) { - log.error("", e); - } - - UserCourseInformationsManager infoManager = CoreSpringFactory.getImpl(UserCourseInformationsManager.class); - try { - for(int i=0; i<50; i++) { - infoManager.updateUserCourseInformations(courseResourceableId, user); - } - } catch (Exception e) { - errorCounter.incrementAndGet(); - log.error("", e); - } finally { - doneSignal.countDown(); - } - } + List<Identity> users = new ArrayList<Identity>(); + users.add(user1); + users.add(user2); + + Map<Long,Date> launchDates = userCourseInformationsManager.getInitialLaunchDates(course.getResourceableId(), users); + Assert.assertNotNull(launchDates); + Assert.assertEquals(2, launchDates.size()); + Assert.assertTrue(launchDates.containsKey(user1.getKey())); + Assert.assertNotNull(launchDates.get(user1.getKey())); + Assert.assertTrue(launchDates.containsKey(user2.getKey())); + Assert.assertNotNull(launchDates.get(user2.getKey())); } } -- GitLab