ims_caliper 0.9.3.14 → 0.9.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/lib/caliper/defaults.rb +2 -2
- data/lib/caliper/entities/agent/organization.rb +3 -3
- data/lib/caliper/entities/assessment/assessment.rb +0 -2
- data/lib/caliper/entities/entity.rb +0 -1
- data/lib/caliper/entities/foaf/agent.rb +1 -1
- data/lib/caliper/entities/lis/course_offering.rb +0 -1
- data/lib/caliper/entities/lis/group.rb +1 -2
- data/lib/caliper/entities/lis/{roles.rb → role.rb} +1 -1
- data/lib/caliper/entities/outcome/result.rb +3 -3
- data/lib/caliper/entities/response/fillin_blank_response.rb +1 -0
- data/lib/caliper/entities/response/multiple_choice_response.rb +1 -0
- data/lib/caliper/entities/response/multiple_response_response.rb +1 -0
- data/lib/caliper/entities/response/response.rb +1 -0
- data/lib/caliper/entities/response/select_type_response.rb +1 -0
- data/lib/caliper/entities/response/true_false_response.rb +1 -0
- data/lib/caliper/event/annotation_event.rb +1 -0
- data/lib/caliper/event/event.rb +28 -26
- data/lib/caliper/event/view_event.rb +1 -0
- data/lib/caliper/jsonable.rb +2 -1
- data/lib/caliper/options.rb +11 -11
- data/lib/caliper/profiles/assessment_profile.rb +0 -1
- data/lib/caliper/{event/grade_predict_event.rb → request/envelope.rb} +21 -11
- data/lib/caliper/request/envelope_jsonable.rb +69 -0
- data/lib/caliper/request/event_store_requestor.rb +16 -27
- data/lib/caliper/request/http_requestor.rb +8 -27
- data/lib/caliper/sensor.rb +12 -23
- data/lib/caliper/version.rb +1 -1
- data/spec/lib/entities/agent/person_spec.rb +1 -1
- data/spec/lib/entities/entity_spec.rb +1 -1
- data/spec/lib/event/annotation_event_bookmark_spec.rb +81 -98
- data/spec/lib/event/annotation_event_highlight_spec.rb +81 -98
- data/spec/lib/event/annotation_event_shared_spec.rb +81 -100
- data/spec/lib/event/annotation_event_tag_spec.rb +81 -98
- data/spec/lib/event/assessment_event_spec.rb +64 -124
- data/spec/lib/event/assessment_item_completed_event_spec.rb +93 -138
- data/spec/lib/event/assessment_item_started_event_spec.rb +92 -139
- data/spec/lib/event/assignable_event_spec.rb +65 -129
- data/spec/lib/event/media_event_spec.rb +77 -94
- data/spec/lib/event/navigated_event_spec.rb +90 -108
- data/spec/lib/event/session_event_login_spec.rb +98 -108
- data/spec/lib/event/session_event_logout_spec.rb +66 -81
- data/spec/lib/event/session_event_timeout_spec.rb +62 -88
- data/spec/lib/event/viewed_event_spec.rb +74 -92
- data/spec/lib/event_helper.rb +89 -109
- data/spec/lib/request/http_requestor_spec.rb +170 -0
- data/spec/lib/sensor_spec.rb +9 -29
- metadata +10 -11
- data/lib/caliper/entities/outcome/predicted_grade.rb +0 -43
- data/lib/caliper/entity_envelope.rb +0 -33
- data/lib/caliper/event_envelope.rb +0 -33
- data/lib/caliper/request/event_store_envelope.rb +0 -27
@@ -20,7 +20,7 @@ require_all 'lib/caliper/entities/entity.rb'
|
|
20
20
|
require_all 'lib/caliper/entities/agent/software_application.rb'
|
21
21
|
require_all 'lib/caliper/entities/agent/person.rb'
|
22
22
|
require_all 'lib/caliper/entities/lis/membership.rb'
|
23
|
-
require_all 'lib/caliper/entities/lis/
|
23
|
+
require_all 'lib/caliper/entities/lis/role.rb'
|
24
24
|
require_all 'lib/caliper/entities/lis/status.rb'
|
25
25
|
require_all 'lib/caliper/entities/lis/course_section.rb'
|
26
26
|
require_all 'lib/caliper/entities/lis/course_offering.rb'
|
@@ -40,42 +40,16 @@ module Caliper
|
|
40
40
|
|
41
41
|
it 'should ensure that a AssessmentEvent is correctly created and serialized' do
|
42
42
|
|
43
|
-
#
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
membership1.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
51
|
-
membership1.status = Caliper::Entities::LIS::Status::ACTIVE
|
52
|
-
membership1.dateCreated = "2015-08-01T06:00:00.000Z"
|
53
|
-
membership1.dateModified = nil;
|
54
|
-
membership2 = Caliper::Entities::LIS::Membership.new
|
55
|
-
membership2.id = "https://some-university.edu/membership/002"
|
56
|
-
membership2.member = "https://some-university.edu/user/554433"
|
57
|
-
membership2.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
58
|
-
membership2.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
59
|
-
membership2.status = Caliper::Entities::LIS::Status::ACTIVE
|
60
|
-
membership2.dateCreated = "2015-08-01T06:00:00.000Z"
|
61
|
-
membership2.dateModified = nil
|
62
|
-
membership3 = Caliper::Entities::LIS::Membership.new
|
63
|
-
membership3.id = "https://some-university.edu/membership/003"
|
64
|
-
membership3.member = "https://some-university.edu/user/554433"
|
65
|
-
membership3.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
66
|
-
membership3.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
67
|
-
membership3.status = Caliper::Entities::LIS::Status::ACTIVE
|
68
|
-
membership3.dateCreated = "2015-08-01T06:00:00.000Z"
|
69
|
-
membership3.dateModified = nil
|
70
|
-
student.hasMembership = [membership1, membership2, membership3]
|
71
|
-
student.dateCreated = '2015-08-01T06:00:00.000Z'
|
72
|
-
student.dateModified = '2015-09-02T11:30:00.000Z'
|
73
|
-
# puts "new student = #{student.to_json}"
|
74
|
-
|
75
|
-
# The Action
|
43
|
+
# Actor
|
44
|
+
actor = Caliper::Entities::Agent::Person.new
|
45
|
+
actor.id = 'https://some-university.edu/user/554433'
|
46
|
+
actor.dateCreated = '2015-08-01T06:00:00.000Z'
|
47
|
+
actor.dateModified = '2015-09-02T11:30:00.000Z'
|
48
|
+
|
49
|
+
# Action
|
76
50
|
action = Caliper::Profiles::AssessmentActions::STARTED
|
77
51
|
|
78
|
-
#
|
52
|
+
# Object
|
79
53
|
assessment = Caliper::Entities::Assessment::Assessment.new
|
80
54
|
assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
|
81
55
|
assessment.name = "American Revolution - Key Figures Assessment"
|
@@ -91,49 +65,7 @@ module Caliper
|
|
91
65
|
assessment.maxSubmits = 2
|
92
66
|
assessment.maxScore = 3.0
|
93
67
|
|
94
|
-
#
|
95
|
-
assessmentItem1 = Caliper::Entities::Assessment::AssessmentItem.new
|
96
|
-
assessmentItem1.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
|
97
|
-
assessmentItem1.name = "Assessment Item 1"
|
98
|
-
assessmentItem1.isPartOf = assessment.id
|
99
|
-
assessmentItem1.maxAttempts = 2
|
100
|
-
assessmentItem1.maxSubmits = 2
|
101
|
-
assessmentItem1.maxScore = 1.0
|
102
|
-
assessmentItem1.dateCreated = nil
|
103
|
-
assessmentItem1.dateModified = nil
|
104
|
-
assessmentItem1.version = "1.0"
|
105
|
-
assessmentItem1.isTimeDependent = false
|
106
|
-
|
107
|
-
assessmentItem2 = Caliper::Entities::Assessment::AssessmentItem.new
|
108
|
-
assessmentItem2.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item2"
|
109
|
-
assessmentItem2.name = "Assessment Item 2"
|
110
|
-
assessmentItem2.isPartOf = assessment.id
|
111
|
-
assessmentItem2.maxAttempts = 2
|
112
|
-
assessmentItem2.maxSubmits = 2
|
113
|
-
assessmentItem2.maxScore = 1.0
|
114
|
-
assessmentItem2.dateCreated = nil
|
115
|
-
assessmentItem2.dateModified = nil
|
116
|
-
assessmentItem2.version = "1.0"
|
117
|
-
assessmentItem2.isTimeDependent = false
|
118
|
-
|
119
|
-
assessmentItem3 = Caliper::Entities::Assessment::AssessmentItem.new
|
120
|
-
assessmentItem3.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item3"
|
121
|
-
assessmentItem3.name = "Assessment Item 3"
|
122
|
-
assessmentItem3.isPartOf = assessment.id
|
123
|
-
assessmentItem3.maxAttempts = 2
|
124
|
-
assessmentItem3.maxSubmits = 2
|
125
|
-
assessmentItem3.maxScore = 1.0
|
126
|
-
assessmentItem3.dateCreated = nil
|
127
|
-
assessmentItem3.dateModified = nil
|
128
|
-
assessmentItem3.version = "1.0"
|
129
|
-
assessmentItem3.isTimeDependent = false
|
130
|
-
|
131
|
-
assessment.assessmentItems = [assessmentItem1, assessmentItem2, assessmentItem3]
|
132
|
-
|
133
|
-
# The target object within the Event Object
|
134
|
-
target = nil;
|
135
|
-
|
136
|
-
# The attempt object = Attempt) within the Event Object
|
68
|
+
# Generated attempt
|
137
69
|
attempt = Caliper::Entities::Assignable::Attempt.new
|
138
70
|
attempt.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/attempt1"
|
139
71
|
attempt.actor = "https://some-university.edu/user/554433"
|
@@ -147,74 +79,82 @@ module Caliper
|
|
147
79
|
attempt.extensions = {}
|
148
80
|
attempt.name = nil
|
149
81
|
|
150
|
-
#
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
courseOffering.name = "Political Science 101: The American Revolution"
|
162
|
-
courseOffering.courseNumber = "POL101"
|
163
|
-
courseOffering.academicSession = "Fall-2015"
|
164
|
-
courseOffering.membership = []
|
165
|
-
courseOffering.subOrganizationOf = nil
|
166
|
-
courseOffering.dateCreated = '2015-08-01T06:00:00.000Z'
|
167
|
-
courseOffering.dateModified = '2015-09-02T11:30:00.000Z'
|
168
|
-
|
169
|
-
# The LIS Course Section for the Caliper Event
|
170
|
-
course = Caliper::Entities::LIS::CourseSection.new
|
171
|
-
course.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
172
|
-
course.name = 'American Revolution 101'
|
82
|
+
# ed_app
|
83
|
+
ed_app = Caliper::Entities::Agent::SoftwareApplication.new
|
84
|
+
ed_app.id = 'https://com.sat/super-assessment-tool'
|
85
|
+
ed_app.name = 'Super Assessment Tool'
|
86
|
+
ed_app.dateCreated = '2015-08-01T06:00:00.000Z'
|
87
|
+
ed_app.dateModified = nil
|
88
|
+
|
89
|
+
# LIS Course Offering
|
90
|
+
course = Caliper::Entities::LIS::CourseOffering.new
|
91
|
+
course.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
|
92
|
+
course.name = "Political Science 101: The American Revolution"
|
173
93
|
course.courseNumber = "POL101"
|
174
94
|
course.academicSession = "Fall-2015"
|
175
|
-
course.
|
176
|
-
course.membership = [membership2]
|
177
|
-
course.subOrganizationOf = courseOffering
|
95
|
+
course.subOrganizationOf = nil
|
178
96
|
course.dateCreated = '2015-08-01T06:00:00.000Z'
|
179
97
|
course.dateModified = '2015-09-02T11:30:00.000Z'
|
180
98
|
|
99
|
+
# LIS Course Section
|
100
|
+
section = Caliper::Entities::LIS::CourseSection.new
|
101
|
+
section.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
102
|
+
section.name = 'American Revolution 101'
|
103
|
+
section.courseNumber = "POL101"
|
104
|
+
section.academicSession = "Fall-2015"
|
105
|
+
section.category = nil
|
106
|
+
section.subOrganizationOf = course
|
107
|
+
section.dateCreated = '2015-08-01T06:00:00.000Z'
|
108
|
+
section.dateModified = '2015-09-02T11:30:00.000Z'
|
109
|
+
|
181
110
|
# LIS Group
|
182
111
|
group = Caliper::Entities::LIS::Group.new
|
183
112
|
group.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
184
113
|
group.name = "Discussion Group 001"
|
185
|
-
group.
|
186
|
-
group.subOrganizationOf = course
|
114
|
+
group.subOrganizationOf = section
|
187
115
|
group.dateCreated = '2015-08-01T06:00:00.000Z'
|
188
116
|
group.dateModified = nil
|
189
117
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
118
|
+
membership = Caliper::Entities::LIS::Membership.new
|
119
|
+
membership.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/roster/554433"
|
120
|
+
membership.name = "American Revolution 101"
|
121
|
+
membership.description = "Roster entry"
|
122
|
+
membership.member = "https://some-university.edu/user/554433"
|
123
|
+
membership.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
124
|
+
membership.roles = [Caliper::Entities::LIS::Role::LEARNER]
|
125
|
+
membership.status = Caliper::Entities::LIS::Status::ACTIVE
|
126
|
+
membership.dateCreated = "2015-08-01T06:00:00.000Z"
|
127
|
+
membership.dateModified = nil
|
128
|
+
|
129
|
+
# Create the Event
|
130
|
+
event = AssessmentEvent.new
|
131
|
+
event.actor = actor
|
132
|
+
event.action = action
|
133
|
+
event.object = assessment
|
134
|
+
event.target = nil
|
135
|
+
event.generated = attempt
|
136
|
+
event.startedAtTime = '2015-09-15T10:15:00.000Z'
|
137
|
+
event.endedAtTime = nil
|
138
|
+
event.duration = nil
|
139
|
+
event.edApp = ed_app
|
140
|
+
event.group = group
|
141
|
+
event.membership = membership
|
142
|
+
# puts "Event JSON = #{event.to_json}'"
|
203
143
|
|
204
144
|
# Load JSON from caliper-common-fixtures for comparison
|
205
145
|
# NOTE - sym link to caliper-common-fixtures needs to exist under spec/fixtures
|
206
146
|
file = File.read('spec/fixtures/caliperAssessmentEvent.json')
|
207
147
|
data_hash = JSON.parse(file)
|
208
148
|
expected_json = data_hash.to_json # convert hash back to JSON string after parse
|
209
|
-
|
149
|
+
expect(event.to_json).to be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "ed_app", "group")
|
210
150
|
|
211
151
|
# puts "JSON from file = #{data_hash}"
|
212
|
-
|
213
|
-
|
214
|
-
# puts "AssessmentEvent from JSON = #{
|
152
|
+
deser_event = AssessmentEvent.new
|
153
|
+
deser_event.from_json data_hash
|
154
|
+
# puts "AssessmentEvent from JSON = #{deser_event.to_json}"
|
215
155
|
|
216
156
|
# Ensure that the deserialized bookmark event object conforms
|
217
|
-
expect(
|
157
|
+
expect(event).to eql(deser_event)
|
218
158
|
end
|
219
159
|
end
|
220
160
|
end
|
@@ -20,7 +20,7 @@ require_all 'lib/caliper/entities/entity.rb'
|
|
20
20
|
require_all 'lib/caliper/entities/agent/software_application.rb'
|
21
21
|
require_all 'lib/caliper/entities/agent/person.rb'
|
22
22
|
require_all 'lib/caliper/entities/lis/membership.rb'
|
23
|
-
require_all 'lib/caliper/entities/lis/
|
23
|
+
require_all 'lib/caliper/entities/lis/role.rb'
|
24
24
|
require_all 'lib/caliper/entities/lis/status.rb'
|
25
25
|
require_all 'lib/caliper/entities/lis/course_section.rb'
|
26
26
|
require_all 'lib/caliper/entities/lis/course_offering.rb'
|
@@ -42,99 +42,45 @@ module Caliper
|
|
42
42
|
|
43
43
|
it 'should ensure that a Completed AssessmentItemEvent is correctly created and serialized' do
|
44
44
|
|
45
|
-
#
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
membership1.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
53
|
-
membership1.status = Caliper::Entities::LIS::Status::ACTIVE
|
54
|
-
membership1.dateCreated = "2015-08-01T06:00:00.000Z"
|
55
|
-
membership1.dateModified = nil;
|
56
|
-
membership2 = Caliper::Entities::LIS::Membership.new
|
57
|
-
membership2.id = "https://some-university.edu/membership/002"
|
58
|
-
membership2.member = "https://some-university.edu/user/554433"
|
59
|
-
membership2.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
60
|
-
membership2.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
61
|
-
membership2.status = Caliper::Entities::LIS::Status::ACTIVE
|
62
|
-
membership2.dateCreated = "2015-08-01T06:00:00.000Z"
|
63
|
-
membership2.dateModified = nil
|
64
|
-
membership3 = Caliper::Entities::LIS::Membership.new
|
65
|
-
membership3.id = "https://some-university.edu/membership/003"
|
66
|
-
membership3.member = "https://some-university.edu/user/554433"
|
67
|
-
membership3.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
68
|
-
membership3.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
69
|
-
membership3.status = Caliper::Entities::LIS::Status::ACTIVE
|
70
|
-
membership3.dateCreated = "2015-08-01T06:00:00.000Z"
|
71
|
-
membership3.dateModified = nil
|
72
|
-
student.hasMembership = [membership1, membership2, membership3]
|
73
|
-
student.dateCreated = '2015-08-01T06:00:00.000Z'
|
74
|
-
student.dateModified = '2015-09-02T11:30:00.000Z'
|
75
|
-
# puts "new student = #{student.to_json}"
|
76
|
-
|
77
|
-
# The Action
|
45
|
+
# Actor
|
46
|
+
actor = Caliper::Entities::Agent::Person.new
|
47
|
+
actor.id = 'https://some-university.edu/user/554433'
|
48
|
+
actor.dateCreated = '2015-08-01T06:00:00.000Z'
|
49
|
+
actor.dateModified = '2015-09-02T11:30:00.000Z'
|
50
|
+
|
51
|
+
# Action
|
78
52
|
action = Caliper::Profiles::AssessmentItemActions::COMPLETED
|
79
53
|
|
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
|
-
# assessmentItem2.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item2"
|
111
|
-
# assessmentItem2.name = "Assessment Item 2"
|
112
|
-
# assessmentItem2.isPartOf = assessment.id
|
113
|
-
# assessmentItem2.maxAttempts = 2
|
114
|
-
# assessmentItem2.maxSubmits = 2
|
115
|
-
# assessmentItem2.maxScore = 1.0
|
116
|
-
# assessmentItem2.dateCreated = nil
|
117
|
-
# assessmentItem2.dateModified = nil
|
118
|
-
# assessmentItem2.version = "1.0"
|
119
|
-
# assessmentItem2.isTimeDependent = false
|
120
|
-
|
121
|
-
# assessmentItem3 = Caliper::Entities::Assessment::AssessmentItem.new
|
122
|
-
# assessmentItem3.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item3"
|
123
|
-
# assessmentItem3.name = "Assessment Item 3"
|
124
|
-
# assessmentItem3.isPartOf = assessment.id
|
125
|
-
# assessmentItem3.maxAttempts = 2
|
126
|
-
# assessmentItem3.maxSubmits = 2
|
127
|
-
# assessmentItem3.maxScore = 1.0
|
128
|
-
# assessmentItem3.dateCreated = nil
|
129
|
-
# assessmentItem3.dateModified = nil
|
130
|
-
# assessmentItem3.version = "1.0"
|
131
|
-
# assessmentItem3.isTimeDependent = false
|
132
|
-
|
133
|
-
# assessment.assessmentItems = [assessmentItem1, assessmentItem2, assessmentItem3]
|
134
|
-
|
135
|
-
# # The target object within the Event Object
|
136
|
-
# target = nil;
|
137
|
-
# # The attempt object = Attempt) within the Event Object
|
54
|
+
# Parent assessment
|
55
|
+
assessment = Caliper::Entities::Assessment::Assessment.new
|
56
|
+
assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
|
57
|
+
assessment.name = "American Revolution - Key Figures Assessment"
|
58
|
+
assessment.dateModified = '2015-09-02T11:30:00.000Z'
|
59
|
+
assessment.dateCreated = '2015-08-01T06:00:00.000Z'
|
60
|
+
assessment.datePublished = '2015-08-15T09:30:00.000Z'
|
61
|
+
assessment.version = "1.0"
|
62
|
+
assessment.dateToActivate = '2015-08-16T05:00:00.000Z'
|
63
|
+
assessment.dateToShow = '2015-08-16T05:00:00.000Z'
|
64
|
+
assessment.dateToStartOn = "2015-08-16T05:00:00.000Z"
|
65
|
+
assessment.dateToSubmit = "2015-09-28T11:59:59.000Z"
|
66
|
+
assessment.maxAttempts = 2
|
67
|
+
assessment.maxSubmits = 2
|
68
|
+
assessment.maxScore = 3.0
|
69
|
+
|
70
|
+
# Object
|
71
|
+
item = Caliper::Entities::Assessment::AssessmentItem.new
|
72
|
+
item.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
|
73
|
+
item.name = "Assessment Item 1"
|
74
|
+
item.isPartOf = assessment
|
75
|
+
item.maxAttempts = 2
|
76
|
+
item.maxSubmits = 2
|
77
|
+
item.maxScore = 1.0
|
78
|
+
item.dateCreated = nil
|
79
|
+
item.dateModified = nil
|
80
|
+
item.version = "1.0"
|
81
|
+
item.isTimeDependent = false
|
82
|
+
|
83
|
+
# Attempt (response.attempt)
|
138
84
|
attempt = Caliper::Entities::Assignable::Attempt.new
|
139
85
|
attempt.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1/attempt1"
|
140
86
|
attempt.actor = "https://some-university.edu/user/554433"
|
@@ -148,6 +94,7 @@ module Caliper
|
|
148
94
|
attempt.extensions = {}
|
149
95
|
attempt.name = nil
|
150
96
|
|
97
|
+
# Generate response
|
151
98
|
response = Caliper::Entities::Response::FillinBlankResponse.new
|
152
99
|
response.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1/response1"
|
153
100
|
response.name = nil
|
@@ -163,74 +110,82 @@ module Caliper
|
|
163
110
|
response.endedAtTime = nil
|
164
111
|
response.values = ["2 July 1776"]
|
165
112
|
|
166
|
-
#
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
courseOffering.name = "Political Science 101: The American Revolution"
|
178
|
-
courseOffering.courseNumber = "POL101"
|
179
|
-
courseOffering.academicSession = "Fall-2015"
|
180
|
-
courseOffering.membership = []
|
181
|
-
courseOffering.subOrganizationOf = nil
|
182
|
-
courseOffering.dateCreated = '2015-08-01T06:00:00.000Z'
|
183
|
-
courseOffering.dateModified = '2015-09-02T11:30:00.000Z'
|
184
|
-
|
185
|
-
# The LIS Course Section for the Caliper Event
|
186
|
-
course = Caliper::Entities::LIS::CourseSection.new
|
187
|
-
course.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
188
|
-
course.name = 'American Revolution 101'
|
113
|
+
# ed_app
|
114
|
+
ed_app = Caliper::Entities::Agent::SoftwareApplication.new
|
115
|
+
ed_app.id = 'https://com.sat/super-assessment-tool'
|
116
|
+
ed_app.name = 'Super Assessment Tool'
|
117
|
+
ed_app.dateCreated = '2015-08-01T06:00:00.000Z'
|
118
|
+
ed_app.dateModified = nil
|
119
|
+
|
120
|
+
# LIS Course Offering
|
121
|
+
course = Caliper::Entities::LIS::CourseOffering.new
|
122
|
+
course.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
|
123
|
+
course.name = "Political Science 101: The American Revolution"
|
189
124
|
course.courseNumber = "POL101"
|
190
125
|
course.academicSession = "Fall-2015"
|
191
|
-
course.
|
192
|
-
course.membership = [membership2]
|
193
|
-
course.subOrganizationOf = courseOffering
|
126
|
+
course.subOrganizationOf = nil
|
194
127
|
course.dateCreated = '2015-08-01T06:00:00.000Z'
|
195
128
|
course.dateModified = '2015-09-02T11:30:00.000Z'
|
196
129
|
|
130
|
+
# LIS Course Section
|
131
|
+
section = Caliper::Entities::LIS::CourseSection.new
|
132
|
+
section.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
133
|
+
section.name = 'American Revolution 101'
|
134
|
+
section.courseNumber = "POL101"
|
135
|
+
section.academicSession = "Fall-2015"
|
136
|
+
section.category = nil
|
137
|
+
section.subOrganizationOf = course
|
138
|
+
section.dateCreated = '2015-08-01T06:00:00.000Z'
|
139
|
+
section.dateModified = '2015-09-02T11:30:00.000Z'
|
140
|
+
|
197
141
|
# LIS Group
|
198
142
|
group = Caliper::Entities::LIS::Group.new
|
199
143
|
group.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
200
144
|
group.name = "Discussion Group 001"
|
201
|
-
group.
|
202
|
-
group.subOrganizationOf = course
|
145
|
+
group.subOrganizationOf = section
|
203
146
|
group.dateCreated = '2015-08-01T06:00:00.000Z'
|
204
147
|
group.dateModified = nil
|
205
148
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
149
|
+
membership = Caliper::Entities::LIS::Membership.new
|
150
|
+
membership.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/roster/554433"
|
151
|
+
membership.name = "American Revolution 101"
|
152
|
+
membership.description = "Roster entry"
|
153
|
+
membership.member = "https://some-university.edu/user/554433"
|
154
|
+
membership.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
155
|
+
membership.roles = [Caliper::Entities::LIS::Role::LEARNER]
|
156
|
+
membership.status = Caliper::Entities::LIS::Status::ACTIVE
|
157
|
+
membership.dateCreated = "2015-08-01T06:00:00.000Z"
|
158
|
+
membership.dateModified = nil
|
159
|
+
|
160
|
+
# Create the Event
|
161
|
+
event = AssessmentItemEvent.new
|
162
|
+
event.actor = actor
|
163
|
+
event.action = action
|
164
|
+
event.object = item
|
165
|
+
event.target = nil
|
166
|
+
event.generated = response
|
167
|
+
event.startedAtTime = '2015-09-15T10:15:00.000Z'
|
168
|
+
event.endedAtTime = nil
|
169
|
+
event.duration = nil
|
170
|
+
event.edApp = ed_app
|
171
|
+
event.group = group
|
172
|
+
event.membership = membership
|
173
|
+
# puts "Event JSON = #{event.to_json}'"
|
219
174
|
|
220
175
|
# Load JSON from caliper-common-fixtures for comparison
|
221
176
|
# NOTE - sym link to caliper-common-fixtures needs to exist under spec/fixtures
|
222
177
|
file = File.read('spec/fixtures/caliperAssessmentItemCompletedEvent.json')
|
223
178
|
data_hash = JSON.parse(file)
|
224
179
|
expected_json = data_hash.to_json # convert hash back to JSON string after parse
|
225
|
-
|
180
|
+
expect(event.to_json).to be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "ed_app", "group")
|
226
181
|
|
227
182
|
# puts "JSON from file = #{data_hash}"
|
228
|
-
|
229
|
-
|
230
|
-
# puts "AssessmentItemEvent from JSON = #{
|
183
|
+
deser_event = AssessmentItemEvent.new
|
184
|
+
deser_event.from_json data_hash
|
185
|
+
# puts "AssessmentItemEvent from JSON = #{deser_event.to_json}"
|
231
186
|
|
232
187
|
# Ensure that the deserialized bookmark event object conforms
|
233
|
-
expect(
|
188
|
+
expect(event).to eql(deser_event)
|
234
189
|
end
|
235
190
|
end
|
236
191
|
end
|