blob: 7d6eb37e028d73e74bccb38a55ff4901eb0410d9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
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;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.*;
import static com.stileeducation.markr.controller.TestResultsController.IMPORT_ENDPOINT;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class TestResultsControllerTest {
@LocalServerPort
private int port;
@Autowired
private XmlMapper xmlMapper;
@Autowired
private TestRestTemplate restTemplate;
@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<String> entity = new HttpEntity<>(requestXml, headers);
ResponseEntity<String> 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<AggregatedTestResultsDTO> 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);
}
}
|