From 6f62cf9d52e1d5353be33f1fbf3429b0be456dc7 Mon Sep 17 00:00:00 2001 From: Szymon Szukalski Date: Tue, 23 Jul 2024 16:30:53 +1000 Subject: Implement simple /results/:id/aggregate endpoint and test --- .../controller/TestResultsControllerTest.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/test/java/com/stileeducation/markr/controller/TestResultsControllerTest.java') diff --git a/src/test/java/com/stileeducation/markr/controller/TestResultsControllerTest.java b/src/test/java/com/stileeducation/markr/controller/TestResultsControllerTest.java index 4db9008..7d6eb37 100644 --- a/src/test/java/com/stileeducation/markr/controller/TestResultsControllerTest.java +++ b/src/test/java/com/stileeducation/markr/controller/TestResultsControllerTest.java @@ -1,6 +1,7 @@ package com.stileeducation.markr.controller; import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import com.stileeducation.markr.dto.AggregatedTestResultsDTO; import com.stileeducation.markr.dto.MCQTestResultsDTO; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -26,16 +27,43 @@ public class TestResultsControllerTest { @Test public void testImport() throws Exception { + // Given MCQTestResultsDTO request = new MCQTestResultsDTO(); String requestXml = xmlMapper.writeValueAsString(request); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_XML); + // When HttpEntity entity = new HttpEntity<>(requestXml, headers); ResponseEntity response = restTemplate.postForEntity(IMPORT_ENDPOINT, entity, String.class); + // Then assertThat(response.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT); } + @Test + public void testAggregate() throws Exception { + // Given + String testId = "123"; // Example test ID + String url = "/results/" + testId + "/aggregate"; + + // When + ResponseEntity response = restTemplate.getForEntity(url, AggregatedTestResultsDTO.class); + + // Then + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + + AggregatedTestResultsDTO results = response.getBody(); + assertThat(results).isNotNull(); + assertThat(results.getMean()).isEqualTo(65.0); + assertThat(results.getStddev()).isEqualTo(0.0); + assertThat(results.getMin()).isEqualTo(65.0); + assertThat(results.getMax()).isEqualTo(65.0); + assertThat(results.getP25()).isEqualTo(65.0); + assertThat(results.getP50()).isEqualTo(65.0); + assertThat(results.getP75()).isEqualTo(65.0); + assertThat(results.getCount()).isEqualTo(1); + } + } -- cgit v1.2.3