-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathActivityTests.java
More file actions
151 lines (101 loc) · 4.67 KB
/
ActivityTests.java
File metadata and controls
151 lines (101 loc) · 4.67 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*
* Copyright 2016-2023 Berry Cloud Ltd. All rights reserved.
*/
package dev.learning.xapi.model;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.Locale;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.util.ResourceUtils;
/**
* Activity Tests.
*
* @author Lukáš Sahula
* @author Martin Myslik
*/
@DisplayName("Activity tests")
class ActivityTests {
private final ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules();
@Test
void whenDeserializingActivityThenResultIsInstanceOfActivity() throws Exception {
final File file = ResourceUtils.getFile("classpath:activity/activity.json");
// When Deserializing Activity
final Activity result = objectMapper.readValue(file, Activity.class);
// Then Result Is Instance Of Activity
assertThat(result, instanceOf(Activity.class));
}
@Test
void whenDeserializingActivityThenIdIsExpected() throws Exception {
final File file = ResourceUtils.getFile("classpath:activity/activity.json");
// When Deserializing Activity
final Activity result = objectMapper.readValue(file, Activity.class);
// Then Id Is Expected
assertThat(result.getId(), is(URI.create("http://example.com/xapi/activity/simplestatement")));
}
@Test
void whenDeserializingActivityThenDefinitionIsInstanceOfActivityDefinition() throws Exception {
final File file = ResourceUtils.getFile("classpath:activity/activity.json");
// When Deserializing Activity
final Activity result = objectMapper.readValue(file, Activity.class);
// Then Definition Is Instance Of Activity Definition
assertThat(result.getDefinition(), instanceOf(ActivityDefinition.class));
}
@Test
void whenSerializingActivityThenResultIsEqualToExpectedJson() throws IOException {
// This test uses the English locale because Jackson uses underscores instead of hyphens to
// separate variants
final Activity activity = Activity.builder()
.id(URI.create("http://example.com/xapi/activity/simplestatement"))
.definition(d -> d
.addName(Locale.US, "simple statement")
.addDescription(Locale.US,
"A simple Experience API statement. Note that the LRS does not need to have any prior information about the Actor (learner), the verb, or the Activity/object."))
.build();
// When Serializing Activity
final JsonNode result = objectMapper.readTree(objectMapper.writeValueAsString(activity));
// Then Result Is Equal To Expected Json
assertThat(result, is((objectMapper
.readTree(ResourceUtils.getFile("classpath:activity/activity_with_object_type.json")))));
}
@Test
void whenCallingToStringThenResultIsExpected() throws IOException {
final Activity activity = Activity.builder()
.id(URI.create("http://www.example.co.uk/exampleactivity"))
.definition(d -> d.addDescription(Locale.US,
"A simple Experience API statement. Note that the LRS does not need to have any prior information about the Actor (learner), the verb, or the Activity/object."))
.build();
// When Calling ToString
final String result = activity.toString();
// Then Result Is Expected
assertThat(result, is(
"Activity(id=http://www.example.co.uk/exampleactivity, definition=ActivityDefinition(name=null, description={en_US=A simple Experience API statement. Note that the LRS does not need to have any prior information about the Actor (learner), the verb, or the Activity/object.}, type=null, moreInfo=null, interactionType=null, correctResponsesPattern=null, choices=null, scale=null, source=null, target=null, steps=null, extensions=null))"));
}
/*
* Constructor tests.
*/
@Test
void whenActivityIsConstructedWithIdThenIdIsExpected() {
// When Activity Is Constructed With Id
final Activity activity = new Activity("http://www.example.co.uk/exampleactivity");
// Then Id Is Expected
assertThat(activity.getId(), is(URI.create("http://www.example.co.uk/exampleactivity")));
}
/*
* Builder tests.
*/
@Test
void whenActivityIsBuiltWithStringIdThenIdIsExpected() {
// When Activity Is Built With String Id
final Activity activity =
Activity.builder().id("http://www.example.co.uk/exampleactivity").build();
// Then Id Is Expected
assertThat(activity.getId(), is(URI.create("http://www.example.co.uk/exampleactivity")));
}
}