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'
|
@@ -41,100 +41,45 @@ module Caliper
|
|
41
41
|
|
42
42
|
it 'should ensure that a Started AssessmentItemEvent is correctly created and serialized' do
|
43
43
|
|
44
|
-
#
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
membership1.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
52
|
-
membership1.status = Caliper::Entities::LIS::Status::ACTIVE
|
53
|
-
membership1.dateCreated = "2015-08-01T06:00:00.000Z"
|
54
|
-
membership1.dateModified = nil;
|
55
|
-
membership2 = Caliper::Entities::LIS::Membership.new
|
56
|
-
membership2.id = "https://some-university.edu/membership/002"
|
57
|
-
membership2.member = "https://some-university.edu/user/554433"
|
58
|
-
membership2.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
59
|
-
membership2.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
60
|
-
membership2.status = Caliper::Entities::LIS::Status::ACTIVE
|
61
|
-
membership2.dateCreated = "2015-08-01T06:00:00.000Z"
|
62
|
-
membership2.dateModified = nil
|
63
|
-
membership3 = Caliper::Entities::LIS::Membership.new
|
64
|
-
membership3.id = "https://some-university.edu/membership/003"
|
65
|
-
membership3.member = "https://some-university.edu/user/554433"
|
66
|
-
membership3.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
67
|
-
membership3.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
68
|
-
membership3.status = Caliper::Entities::LIS::Status::ACTIVE
|
69
|
-
membership3.dateCreated = "2015-08-01T06:00:00.000Z"
|
70
|
-
membership3.dateModified = nil
|
71
|
-
student.hasMembership = [membership1, membership2, membership3]
|
72
|
-
student.dateCreated = '2015-08-01T06:00:00.000Z'
|
73
|
-
student.dateModified = '2015-09-02T11:30:00.000Z'
|
74
|
-
# puts "new student = #{student.to_json}"
|
75
|
-
|
76
|
-
# The Action
|
44
|
+
# Actor
|
45
|
+
actor = Caliper::Entities::Agent::Person.new
|
46
|
+
actor.id = 'https://some-university.edu/user/554433'
|
47
|
+
actor.dateCreated = '2015-08-01T06:00:00.000Z'
|
48
|
+
actor.dateModified = '2015-09-02T11:30:00.000Z'
|
49
|
+
|
50
|
+
# Action
|
77
51
|
action = Caliper::Profiles::AssessmentActions::STARTED
|
78
52
|
|
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
|
-
# assessmentItem2.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item2"
|
110
|
-
# assessmentItem2.name = "Assessment Item 2"
|
111
|
-
# assessmentItem2.isPartOf = assessment.id
|
112
|
-
# assessmentItem2.maxAttempts = 2
|
113
|
-
# assessmentItem2.maxSubmits = 2
|
114
|
-
# assessmentItem2.maxScore = 1.0
|
115
|
-
# assessmentItem2.dateCreated = nil
|
116
|
-
# assessmentItem2.dateModified = nil
|
117
|
-
# assessmentItem2.version = "1.0"
|
118
|
-
# assessmentItem2.isTimeDependent = false
|
119
|
-
|
120
|
-
# assessmentItem3 = Caliper::Entities::Assessment::AssessmentItem.new
|
121
|
-
# assessmentItem3.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item3"
|
122
|
-
# assessmentItem3.name = "Assessment Item 3"
|
123
|
-
# assessmentItem3.isPartOf = assessment.id
|
124
|
-
# assessmentItem3.maxAttempts = 2
|
125
|
-
# assessmentItem3.maxSubmits = 2
|
126
|
-
# assessmentItem3.maxScore = 1.0
|
127
|
-
# assessmentItem3.dateCreated = nil
|
128
|
-
# assessmentItem3.dateModified = nil
|
129
|
-
# assessmentItem3.version = "1.0"
|
130
|
-
# assessmentItem3.isTimeDependent = false
|
131
|
-
|
132
|
-
# assessment.assessmentItems = [assessmentItem1, assessmentItem2, assessmentItem3]
|
133
|
-
|
134
|
-
# # The target object within the Event Object
|
135
|
-
# target = nil;
|
136
|
-
|
137
|
-
# # The attempt object = Attempt) within the Event Object
|
53
|
+
# The parent assessment
|
54
|
+
assessment = Caliper::Entities::Assessment::Assessment.new
|
55
|
+
assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
|
56
|
+
assessment.name = "American Revolution - Key Figures Assessment"
|
57
|
+
assessment.dateModified = '2015-09-02T11:30:00.000Z'
|
58
|
+
assessment.dateCreated = '2015-08-01T06:00:00.000Z'
|
59
|
+
assessment.datePublished = '2015-08-15T09:30:00.000Z'
|
60
|
+
assessment.version = "1.0"
|
61
|
+
assessment.dateToActivate = '2015-08-16T05:00:00.000Z'
|
62
|
+
assessment.dateToShow = '2015-08-16T05:00:00.000Z'
|
63
|
+
assessment.dateToStartOn = "2015-08-16T05:00:00.000Z"
|
64
|
+
assessment.dateToSubmit = "2015-09-28T11:59:59.000Z"
|
65
|
+
assessment.maxAttempts = 2
|
66
|
+
assessment.maxSubmits = 2
|
67
|
+
assessment.maxScore = 3.0
|
68
|
+
|
69
|
+
# Object
|
70
|
+
item = Caliper::Entities::Assessment::AssessmentItem.new
|
71
|
+
item.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
|
72
|
+
item.name = "Assessment Item 1"
|
73
|
+
item.isPartOf = assessment
|
74
|
+
item.maxAttempts = 2
|
75
|
+
item.maxSubmits = 2
|
76
|
+
item.maxScore = 1.0
|
77
|
+
item.dateCreated = nil
|
78
|
+
item.dateModified = nil
|
79
|
+
item.version = "1.0"
|
80
|
+
item.isTimeDependent = false
|
81
|
+
|
82
|
+
# Generated attempt
|
138
83
|
attempt = Caliper::Entities::Assignable::Attempt.new
|
139
84
|
attempt.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1/attempt1"
|
140
85
|
attempt.actor = "https://some-university.edu/user/554433"
|
@@ -148,74 +93,82 @@ module Caliper
|
|
148
93
|
attempt.extensions = {}
|
149
94
|
attempt.name = nil
|
150
95
|
|
151
|
-
#
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
courseOffering.name = "Political Science 101: The American Revolution"
|
163
|
-
courseOffering.courseNumber = "POL101"
|
164
|
-
courseOffering.academicSession = "Fall-2015"
|
165
|
-
courseOffering.membership = []
|
166
|
-
courseOffering.subOrganizationOf = nil
|
167
|
-
courseOffering.dateCreated = '2015-08-01T06:00:00.000Z'
|
168
|
-
courseOffering.dateModified = '2015-09-02T11:30:00.000Z'
|
169
|
-
|
170
|
-
# The LIS Course Section for the Caliper Event
|
171
|
-
course = Caliper::Entities::LIS::CourseSection.new
|
172
|
-
course.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
173
|
-
course.name = 'American Revolution 101'
|
96
|
+
# ed_app
|
97
|
+
ed_app = Caliper::Entities::Agent::SoftwareApplication.new
|
98
|
+
ed_app.id = 'https://com.sat/super-assessment-tool'
|
99
|
+
ed_app.name = 'Super Assessment Tool'
|
100
|
+
ed_app.dateCreated = '2015-08-01T06:00:00.000Z'
|
101
|
+
ed_app.dateModified = nil
|
102
|
+
|
103
|
+
# LIS Course Offering
|
104
|
+
course = Caliper::Entities::LIS::CourseOffering.new
|
105
|
+
course.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
|
106
|
+
course.name = "Political Science 101: The American Revolution"
|
174
107
|
course.courseNumber = "POL101"
|
175
108
|
course.academicSession = "Fall-2015"
|
176
|
-
course.
|
177
|
-
course.membership = [membership2]
|
178
|
-
course.subOrganizationOf = courseOffering
|
109
|
+
course.subOrganizationOf = nil
|
179
110
|
course.dateCreated = '2015-08-01T06:00:00.000Z'
|
180
111
|
course.dateModified = '2015-09-02T11:30:00.000Z'
|
181
112
|
|
113
|
+
# LIS Course Section
|
114
|
+
section = Caliper::Entities::LIS::CourseSection.new
|
115
|
+
section.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
116
|
+
section.name = 'American Revolution 101'
|
117
|
+
section.courseNumber = "POL101"
|
118
|
+
section.academicSession = "Fall-2015"
|
119
|
+
section.category = nil
|
120
|
+
section.subOrganizationOf = course
|
121
|
+
section.dateCreated = '2015-08-01T06:00:00.000Z'
|
122
|
+
section.dateModified = '2015-09-02T11:30:00.000Z'
|
123
|
+
|
182
124
|
# LIS Group
|
183
125
|
group = Caliper::Entities::LIS::Group.new
|
184
126
|
group.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
185
127
|
group.name = "Discussion Group 001"
|
186
|
-
group.
|
187
|
-
group.subOrganizationOf = course
|
128
|
+
group.subOrganizationOf = section
|
188
129
|
group.dateCreated = '2015-08-01T06:00:00.000Z'
|
189
130
|
group.dateModified = nil
|
190
131
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
132
|
+
membership = Caliper::Entities::LIS::Membership.new
|
133
|
+
membership.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/roster/554433"
|
134
|
+
membership.name = "American Revolution 101"
|
135
|
+
membership.description = "Roster entry"
|
136
|
+
membership.member = "https://some-university.edu/user/554433"
|
137
|
+
membership.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001"
|
138
|
+
membership.roles = [Caliper::Entities::LIS::Role::LEARNER]
|
139
|
+
membership.status = Caliper::Entities::LIS::Status::ACTIVE
|
140
|
+
membership.dateCreated = "2015-08-01T06:00:00.000Z"
|
141
|
+
membership.dateModified = nil
|
142
|
+
|
143
|
+
# Create the Event
|
144
|
+
event = AssessmentItemEvent.new
|
145
|
+
event.actor = actor
|
146
|
+
event.action = action
|
147
|
+
event.object = item
|
148
|
+
event.target = nil
|
149
|
+
event.generated = attempt
|
150
|
+
event.startedAtTime = '2015-09-15T10:15:00.000Z'
|
151
|
+
event.endedAtTime = nil
|
152
|
+
event.duration = nil
|
153
|
+
event.edApp = ed_app
|
154
|
+
event.group = group
|
155
|
+
event.membership = membership
|
156
|
+
# puts "Event JSON = #{event.to_json}'"
|
204
157
|
|
205
158
|
# Load JSON from caliper-common-fixtures for comparison
|
206
159
|
# NOTE - sym link to caliper-common-fixtures needs to exist under spec/fixtures
|
207
160
|
file = File.read('spec/fixtures/caliperAssessmentItemStartedEvent.json')
|
208
161
|
data_hash = JSON.parse(file)
|
209
162
|
expected_json = data_hash.to_json # convert hash back to JSON string after parse
|
210
|
-
|
163
|
+
expect(event.to_json).to be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "ed_app", "group")
|
211
164
|
|
212
165
|
# puts "JSON from file = #{data_hash}"
|
213
|
-
|
214
|
-
|
215
|
-
# puts "AssessmentItemEvent from JSON = #{
|
166
|
+
deser_event = AssessmentItemEvent.new
|
167
|
+
deser_event.from_json data_hash
|
168
|
+
# puts "AssessmentItemEvent from JSON = #{deser_event.to_json}"
|
216
169
|
|
217
170
|
# Ensure that the deserialized bookmark event object conforms
|
218
|
-
expect(
|
171
|
+
expect(event).to eql(deser_event)
|
219
172
|
end
|
220
173
|
end
|
221
174
|
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'
|
@@ -39,47 +39,17 @@ module Caliper
|
|
39
39
|
describe AssignableEvent do
|
40
40
|
|
41
41
|
it 'should ensure that an AssignableEvent is correctly created and serialized' do
|
42
|
-
|
43
|
-
#
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
membership1.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101"
|
51
|
-
membership1.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
52
|
-
membership1.status = Caliper::Entities::LIS::Status::ACTIVE
|
53
|
-
membership1.dateCreated = "2015-08-01T06:00:00.000Z"
|
54
|
-
membership1.dateModified = nil;
|
55
|
-
|
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
|
-
|
65
|
-
membership3 = Caliper::Entities::LIS::Membership.new
|
66
|
-
membership3.id = "https://some-university.edu/membership/003"
|
67
|
-
membership3.member = "https://some-university.edu/user/554433"
|
68
|
-
membership3.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
69
|
-
membership3.roles = [Caliper::Entities::LIS::Roles::LEARNER]
|
70
|
-
membership3.status = Caliper::Entities::LIS::Status::ACTIVE
|
71
|
-
membership3.dateCreated = "2015-08-01T06:00:00.000Z"
|
72
|
-
membership3.dateModified = nil
|
73
|
-
|
74
|
-
student.hasMembership = [membership1, membership2, membership3]
|
75
|
-
student.dateCreated = '2015-08-01T06:00:00.000Z'
|
76
|
-
student.dateModified = '2015-09-02T11:30:00.000Z'
|
77
|
-
# puts "new student = #{student.to_json}"
|
78
|
-
|
79
|
-
# The Action
|
42
|
+
|
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
|
80
50
|
action = Caliper::Profiles::AssignableActions::ACTIVATED
|
81
51
|
|
82
|
-
#
|
52
|
+
# Object
|
83
53
|
assessment = Caliper::Entities::Assessment::Assessment.new
|
84
54
|
assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
|
85
55
|
assessment.name = "American Revolution - Key Figures Assessment"
|
@@ -95,49 +65,7 @@ module Caliper
|
|
95
65
|
assessment.maxSubmits = 2
|
96
66
|
assessment.maxScore = 3.0
|
97
67
|
|
98
|
-
#
|
99
|
-
assessmentItem1 = Caliper::Entities::Assessment::AssessmentItem.new
|
100
|
-
assessmentItem1.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
|
101
|
-
assessmentItem1.name = "Assessment Item 1"
|
102
|
-
assessmentItem1.isPartOf = assessment.id
|
103
|
-
assessmentItem1.maxAttempts = 2
|
104
|
-
assessmentItem1.maxSubmits = 2
|
105
|
-
assessmentItem1.maxScore = 1.0
|
106
|
-
assessmentItem1.dateCreated = nil
|
107
|
-
assessmentItem1.dateModified = nil
|
108
|
-
assessmentItem1.version = "1.0"
|
109
|
-
assessmentItem1.isTimeDependent = false
|
110
|
-
|
111
|
-
assessmentItem2 = Caliper::Entities::Assessment::AssessmentItem.new
|
112
|
-
assessmentItem2.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item2"
|
113
|
-
assessmentItem2.name = "Assessment Item 2"
|
114
|
-
assessmentItem2.isPartOf = assessment.id
|
115
|
-
assessmentItem2.maxAttempts = 2
|
116
|
-
assessmentItem2.maxSubmits = 2
|
117
|
-
assessmentItem2.maxScore = 1.0
|
118
|
-
assessmentItem2.dateCreated = nil
|
119
|
-
assessmentItem2.dateModified = nil
|
120
|
-
assessmentItem2.version = "1.0"
|
121
|
-
assessmentItem2.isTimeDependent = false
|
122
|
-
|
123
|
-
assessmentItem3 = Caliper::Entities::Assessment::AssessmentItem.new
|
124
|
-
assessmentItem3.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item3"
|
125
|
-
assessmentItem3.name = "Assessment Item 3"
|
126
|
-
assessmentItem3.isPartOf = assessment.id
|
127
|
-
assessmentItem3.maxAttempts = 2
|
128
|
-
assessmentItem3.maxSubmits = 2
|
129
|
-
assessmentItem3.maxScore = 1.0
|
130
|
-
assessmentItem3.dateCreated = nil
|
131
|
-
assessmentItem3.dateModified = nil
|
132
|
-
assessmentItem3.version = "1.0"
|
133
|
-
assessmentItem3.isTimeDependent = false
|
134
|
-
|
135
|
-
assessment.assessmentItems = [assessmentItem1, assessmentItem2, assessmentItem3]
|
136
|
-
|
137
|
-
# The Event target
|
138
|
-
target = nil;
|
139
|
-
|
140
|
-
# The generated attempt
|
68
|
+
# Generated attempt
|
141
69
|
attempt = Caliper::Entities::Assignable::Attempt.new
|
142
70
|
attempt.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/attempt1"
|
143
71
|
attempt.actor = "https://some-university.edu/user/554433"
|
@@ -151,74 +79,82 @@ module Caliper
|
|
151
79
|
attempt.extensions = {}
|
152
80
|
attempt.name = nil
|
153
81
|
|
154
|
-
#
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
courseOffering.name = "Political Science 101: The American Revolution"
|
166
|
-
courseOffering.courseNumber = "POL101"
|
167
|
-
courseOffering.academicSession = "Fall-2015"
|
168
|
-
courseOffering.membership = []
|
169
|
-
courseOffering.subOrganizationOf = nil
|
170
|
-
courseOffering.dateCreated = '2015-08-01T06:00:00.000Z'
|
171
|
-
courseOffering.dateModified = '2015-09-02T11:30:00.000Z'
|
172
|
-
|
173
|
-
# The LIS Course Section for the Caliper Event
|
174
|
-
course = Caliper::Entities::LIS::CourseSection.new
|
175
|
-
course.id = 'https://some-university.edu/politicalScience/2015/american-revolution-101/section/001'
|
176
|
-
course.name = 'American Revolution 101'
|
82
|
+
# EdApp
|
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"
|
177
93
|
course.courseNumber = "POL101"
|
178
94
|
course.academicSession = "Fall-2015"
|
179
|
-
course.
|
180
|
-
course.membership = [membership2]
|
181
|
-
course.subOrganizationOf = courseOffering
|
95
|
+
course.subOrganizationOf = nil
|
182
96
|
course.dateCreated = '2015-08-01T06:00:00.000Z'
|
183
97
|
course.dateModified = '2015-09-02T11:30:00.000Z'
|
184
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
|
+
|
185
110
|
# LIS Group
|
186
111
|
group = Caliper::Entities::LIS::Group.new
|
187
112
|
group.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/section/001/group/001"
|
188
113
|
group.name = "Discussion Group 001"
|
189
|
-
group.
|
190
|
-
group.subOrganizationOf = course
|
114
|
+
group.subOrganizationOf = section
|
191
115
|
group.dateCreated = '2015-08-01T06:00:00.000Z'
|
192
116
|
group.dateModified = nil
|
193
117
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
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 = AssignableEvent.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}'"
|
207
143
|
|
208
144
|
# Load JSON from caliper-common-fixtures for comparison
|
209
145
|
# NOTE - sym link to caliper-common-fixtures needs to exist under spec/fixtures
|
210
146
|
file = File.read('spec/fixtures/caliperAssignableEvent.json')
|
211
147
|
data_hash = JSON.parse(file)
|
212
148
|
expected_json = data_hash.to_json # convert hash back to JSON string after parse
|
213
|
-
|
149
|
+
expect(event.to_json).to be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "edApp", "group")
|
214
150
|
|
215
151
|
# puts "JSON from file = #{data_hash}"
|
216
|
-
|
217
|
-
|
218
|
-
# puts "AssignableEvent from JSON = #{
|
152
|
+
deser_event = AssignableEvent.new
|
153
|
+
deser_event.from_json data_hash
|
154
|
+
# puts "AssignableEvent from JSON = #{deser_event.to_json}"
|
219
155
|
|
220
156
|
# Ensure that the deserialized bookmark event object conforms
|
221
|
-
expect(
|
157
|
+
expect(event).to eql(deser_event)
|
222
158
|
end
|
223
159
|
end
|
224
160
|
end
|