Search in sources :

Example 6 with LectureBlockRollCallVO

use of org.olat.modules.lecture.restapi.LectureBlockRollCallVO in project openolat by klemens.

the class LecturesBlockRollCallTest method getRollCalls_searchParams_True.

@Test
public void getRollCalls_searchParams_True() throws IOException, URISyntaxException {
    // an open lecture block
    LectureBlock openLectureBlock = createMinimalLectureBlock(3);
    Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-1");
    Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("lecturer-2");
    dbInstance.commitAndCloseSession();
    // a closed lecture block
    LectureBlock closedLectureBlock = createMinimalLectureBlock(3);
    dbInstance.commitAndCloseSession();
    closedLectureBlock.setStatus(LectureBlockStatus.done);
    closedLectureBlock.setRollCallStatus(LectureRollCallStatus.closed);
    lectureBlockDao.update(closedLectureBlock);
    List<Integer> absences = Arrays.asList(1, 2);
    LectureBlockRollCall rollCall1 = lectureBlockRollCallDao.createAndPersistRollCall(closedLectureBlock, id1, null, null, null, Collections.emptyList());
    LectureBlockRollCall rollCall2 = lectureBlockRollCallDao.createAndPersistRollCall(closedLectureBlock, id2, null, null, null, absences);
    LectureBlockRollCall rollCall3 = lectureBlockRollCallDao.createAndPersistRollCall(openLectureBlock, id1, null, null, null, absences);
    LectureBlockRollCall rollCall4 = lectureBlockRollCallDao.createAndPersistRollCall(openLectureBlock, id2, null, null, null, Collections.emptyList());
    dbInstance.commit();
    rollCall2.setAbsenceSupervisorNotificationDate(new Date());
    rollCall2 = lectureBlockRollCallDao.update(rollCall2);
    dbInstance.commitAndCloseSession();
    // REST call
    RestConnection conn = new RestConnection();
    Assert.assertTrue(conn.login("administrator", "openolat"));
    URI uri = UriBuilder.fromUri(getContextURI()).path("repo").path("lectures").path("rollcalls").queryParam("hasAbsences", "true").queryParam("closed", "true").queryParam("hasSupervisorNotificationDate", "true").build();
    HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    Assert.assertEquals(200, response.getStatusLine().getStatusCode());
    List<LectureBlockRollCallVO> voList = parseLectureBlockRollCallArray(response.getEntity().getContent());
    Assert.assertNotNull(voList);
    // check the return values
    List<Long> rollCallVoKeys = voList.stream().map(vo -> vo.getKey()).collect(Collectors.toList());
    Assert.assertFalse(rollCallVoKeys.contains(rollCall1.getKey()));
    Assert.assertTrue(rollCallVoKeys.contains(rollCall2.getKey()));
    Assert.assertFalse(rollCallVoKeys.contains(rollCall3.getKey()));
    Assert.assertFalse(rollCallVoKeys.contains(rollCall4.getKey()));
    // check that roll call 2 has a date
    boolean found = false;
    for (LectureBlockRollCallVO vo : voList) {
        if (vo.getKey().equals(rollCall2.getKey()) && vo.getAbsenceSupervisorNotificationDate() != null) {
            found = true;
        }
    }
    Assert.assertTrue(found);
}
Also used : HttpPost(org.apache.http.client.methods.HttpPost) Arrays(java.util.Arrays) LectureBlockRollCallSearchParameters(org.olat.modules.lecture.LectureBlockRollCallSearchParameters) Date(java.util.Date) LectureBlockDAO(org.olat.modules.lecture.manager.LectureBlockDAO) URISyntaxException(java.net.URISyntaxException) Autowired(org.springframework.beans.factory.annotation.Autowired) RepositoryEntry(org.olat.repository.RepositoryEntry) MediaType(javax.ws.rs.core.MediaType) UriBuilder(javax.ws.rs.core.UriBuilder) URI(java.net.URI) LectureBlockRollCall(org.olat.modules.lecture.LectureBlockRollCall) LectureBlockStatus(org.olat.modules.lecture.LectureBlockStatus) LectureBlock(org.olat.modules.lecture.LectureBlock) IOException(java.io.IOException) Test(org.junit.Test) Collectors(java.util.stream.Collectors) JunitTestHelper(org.olat.test.JunitTestHelper) List(java.util.List) LectureBlockRollCallVO(org.olat.modules.lecture.restapi.LectureBlockRollCallVO) HttpGet(org.apache.http.client.methods.HttpGet) DB(org.olat.core.commons.persistence.DB) TypeReference(org.codehaus.jackson.type.TypeReference) Identity(org.olat.core.id.Identity) LectureBlockRollCallDAO(org.olat.modules.lecture.manager.LectureBlockRollCallDAO) HttpResponse(org.apache.http.HttpResponse) Assert(org.junit.Assert) LectureRollCallStatus(org.olat.modules.lecture.LectureRollCallStatus) Collections(java.util.Collections) ObjectMapper(org.codehaus.jackson.map.ObjectMapper) InputStream(java.io.InputStream) OlatJerseyTestCase(org.olat.test.OlatJerseyTestCase) LectureBlockRollCallVO(org.olat.modules.lecture.restapi.LectureBlockRollCallVO) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) Date(java.util.Date) LectureBlock(org.olat.modules.lecture.LectureBlock) LectureBlockRollCall(org.olat.modules.lecture.LectureBlockRollCall) Identity(org.olat.core.id.Identity) Test(org.junit.Test)

Aggregations

URI (java.net.URI)6 HttpResponse (org.apache.http.HttpResponse)6 Test (org.junit.Test)6 Identity (org.olat.core.id.Identity)6 LectureBlock (org.olat.modules.lecture.LectureBlock)6 LectureBlockRollCall (org.olat.modules.lecture.LectureBlockRollCall)6 LectureBlockRollCallVO (org.olat.modules.lecture.restapi.LectureBlockRollCallVO)6 Date (java.util.Date)4 HttpGet (org.apache.http.client.methods.HttpGet)4 HttpPost (org.apache.http.client.methods.HttpPost)4 LectureBlockRollCallSearchParameters (org.olat.modules.lecture.LectureBlockRollCallSearchParameters)4 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 URISyntaxException (java.net.URISyntaxException)2 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 MediaType (javax.ws.rs.core.MediaType)2 UriBuilder (javax.ws.rs.core.UriBuilder)2