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.
Files changed (52) hide show
  1. checksums.yaml +5 -13
  2. data/lib/caliper/defaults.rb +2 -2
  3. data/lib/caliper/entities/agent/organization.rb +3 -3
  4. data/lib/caliper/entities/assessment/assessment.rb +0 -2
  5. data/lib/caliper/entities/entity.rb +0 -1
  6. data/lib/caliper/entities/foaf/agent.rb +1 -1
  7. data/lib/caliper/entities/lis/course_offering.rb +0 -1
  8. data/lib/caliper/entities/lis/group.rb +1 -2
  9. data/lib/caliper/entities/lis/{roles.rb → role.rb} +1 -1
  10. data/lib/caliper/entities/outcome/result.rb +3 -3
  11. data/lib/caliper/entities/response/fillin_blank_response.rb +1 -0
  12. data/lib/caliper/entities/response/multiple_choice_response.rb +1 -0
  13. data/lib/caliper/entities/response/multiple_response_response.rb +1 -0
  14. data/lib/caliper/entities/response/response.rb +1 -0
  15. data/lib/caliper/entities/response/select_type_response.rb +1 -0
  16. data/lib/caliper/entities/response/true_false_response.rb +1 -0
  17. data/lib/caliper/event/annotation_event.rb +1 -0
  18. data/lib/caliper/event/event.rb +28 -26
  19. data/lib/caliper/event/view_event.rb +1 -0
  20. data/lib/caliper/jsonable.rb +2 -1
  21. data/lib/caliper/options.rb +11 -11
  22. data/lib/caliper/profiles/assessment_profile.rb +0 -1
  23. data/lib/caliper/{event/grade_predict_event.rb → request/envelope.rb} +21 -11
  24. data/lib/caliper/request/envelope_jsonable.rb +69 -0
  25. data/lib/caliper/request/event_store_requestor.rb +16 -27
  26. data/lib/caliper/request/http_requestor.rb +8 -27
  27. data/lib/caliper/sensor.rb +12 -23
  28. data/lib/caliper/version.rb +1 -1
  29. data/spec/lib/entities/agent/person_spec.rb +1 -1
  30. data/spec/lib/entities/entity_spec.rb +1 -1
  31. data/spec/lib/event/annotation_event_bookmark_spec.rb +81 -98
  32. data/spec/lib/event/annotation_event_highlight_spec.rb +81 -98
  33. data/spec/lib/event/annotation_event_shared_spec.rb +81 -100
  34. data/spec/lib/event/annotation_event_tag_spec.rb +81 -98
  35. data/spec/lib/event/assessment_event_spec.rb +64 -124
  36. data/spec/lib/event/assessment_item_completed_event_spec.rb +93 -138
  37. data/spec/lib/event/assessment_item_started_event_spec.rb +92 -139
  38. data/spec/lib/event/assignable_event_spec.rb +65 -129
  39. data/spec/lib/event/media_event_spec.rb +77 -94
  40. data/spec/lib/event/navigated_event_spec.rb +90 -108
  41. data/spec/lib/event/session_event_login_spec.rb +98 -108
  42. data/spec/lib/event/session_event_logout_spec.rb +66 -81
  43. data/spec/lib/event/session_event_timeout_spec.rb +62 -88
  44. data/spec/lib/event/viewed_event_spec.rb +74 -92
  45. data/spec/lib/event_helper.rb +89 -109
  46. data/spec/lib/request/http_requestor_spec.rb +170 -0
  47. data/spec/lib/sensor_spec.rb +9 -29
  48. metadata +10 -11
  49. data/lib/caliper/entities/outcome/predicted_grade.rb +0 -43
  50. data/lib/caliper/entity_envelope.rb +0 -33
  51. data/lib/caliper/event_envelope.rb +0 -33
  52. 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/roles.rb'
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
- # The Actor = Person/Student))
44
- student = Caliper::Entities::Agent::Person.new
45
- student.id = 'https://some-university.edu/user/554433'
46
- membership1 = Caliper::Entities::LIS::Membership.new
47
- membership1.id = "https://some-university.edu/membership/001"
48
- membership1.member = "https://some-university.edu/user/554433"
49
- membership1.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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
- # The Object being interacted with by the Actor = Assessment)
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
- # The Assessment has three items
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
- # The Object (edApp)
151
- edApp = Caliper::Entities::Agent::SoftwareApplication.new
152
- edApp.id = 'https://com.sat/super-assessment-tool'
153
- edApp.name = 'Super Assessment Tool'
154
- edApp.hasMembership = []
155
- edApp.dateCreated = '2015-08-01T06:00:00.000Z'
156
- edApp.dateModified = nil
157
-
158
- #LIS Course Offering
159
- courseOffering = Caliper::Entities::LIS::CourseOffering.new
160
- courseOffering.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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.category = nil
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.membership = [membership3]
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
- # The Assessment Event
191
- assessment_event = AssessmentEvent.new
192
- assessment_event.actor = student
193
- assessment_event.action = action
194
- assessment_event.object = assessment
195
- assessment_event.target = nil
196
- assessment_event.generated = attempt
197
- assessment_event.edApp = edApp
198
- assessment_event.group = group
199
- assessment_event.startedAtTime = '2015-09-15T10:15:00.000Z'
200
- assessment_event.endedAtTime = nil
201
- assessment_event.duration = nil
202
- # puts "Event JSON = #{assessment_event.to_json}'"
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
- assessment_event.to_json.should be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "edApp", "group")
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
- deser_assessment_event = AssessmentEvent.new
213
- deser_assessment_event.from_json data_hash
214
- # puts "AssessmentEvent from JSON = #{deser_assessment_event.to_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(assessment_event).to eql(deser_assessment_event)
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/roles.rb'
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
- # The Actor = Person/Student))
46
- student = Caliper::Entities::Agent::Person.new
47
- student.id = 'https://some-university.edu/user/554433'
48
- membership1 = Caliper::Entities::LIS::Membership.new
49
- membership1.id = "https://some-university.edu/membership/001"
50
- membership1.member = "https://some-university.edu/user/554433"
51
- membership1.organization = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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
- # # The Object being interacted with by the Actor = Assessment)
81
- # assessment = Caliper::Entities::Assessment::Assessment.new
82
- # assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
83
- # assessment.name = "American Revolution - Key Figures Assessment"
84
- # assessment.dateModified = '2015-09-02T11:30:00.000Z'
85
- # assessment.dateCreated = '2015-08-01T06:00:00.000Z'
86
- # assessment.datePublished = '2015-08-15T09:30:00.000Z'
87
- # assessment.version = "1.0"
88
- # assessment.dateToActivate = '2015-08-16T05:00:00.000Z'
89
- # assessment.dateToShow = '2015-08-16T05:00:00.000Z'
90
- # assessment.dateToStartOn = "2015-08-16T05:00:00.000Z"
91
- # assessment.dateToSubmit = "2015-09-28T11:59:59.000Z"
92
- # assessment.maxAttempts = 2
93
- # assessment.maxSubmits = 2
94
- # assessment.maxScore = 3.0
95
-
96
- # # The Assessment has three items
97
- assessmentItem1 = Caliper::Entities::Assessment::AssessmentItem.new
98
- assessmentItem1.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
99
- assessmentItem1.name = "Assessment Item 1"
100
- assessmentItem1.isPartOf = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"#assessment.id
101
- assessmentItem1.maxAttempts = 2
102
- assessmentItem1.maxSubmits = 2
103
- assessmentItem1.maxScore = 1.0
104
- assessmentItem1.dateCreated = nil
105
- assessmentItem1.dateModified = nil
106
- assessmentItem1.version = "1.0"
107
- assessmentItem1.isTimeDependent = false
108
-
109
- # assessmentItem2 = Caliper::Entities::Assessment::AssessmentItem.new
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
- # The Object (edApp)
167
- edApp = Caliper::Entities::Agent::SoftwareApplication.new
168
- edApp.id = 'https://com.sat/super-assessment-tool'
169
- edApp.name = 'Super Assessment Tool'
170
- edApp.hasMembership = []
171
- edApp.dateCreated = '2015-08-01T06:00:00.000Z'
172
- edApp.dateModified = nil
173
-
174
- #LIS Course Offering
175
- courseOffering = Caliper::Entities::LIS::CourseOffering.new
176
- courseOffering.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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.category = nil
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.membership = [membership3]
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
- # The Assessment Event
207
- assessment_event = AssessmentItemEvent.new
208
- assessment_event.actor = student
209
- assessment_event.action = action
210
- assessment_event.object = assessmentItem1
211
- assessment_event.target = nil
212
- assessment_event.generated = response
213
- assessment_event.edApp = edApp
214
- assessment_event.group = group
215
- assessment_event.startedAtTime = '2015-09-15T10:15:00.000Z'
216
- assessment_event.endedAtTime = nil
217
- assessment_event.duration = nil
218
- # puts "Event JSON = #{assessment_event.to_json}'"
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
- assessment_event.to_json.should be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "edApp", "group")
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
- deser_assessment_event = AssessmentItemEvent.new
229
- deser_assessment_event.from_json data_hash
230
- # puts "AssessmentItemEvent from JSON = #{deser_assessment_event.to_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(assessment_event).to eql(deser_assessment_event)
188
+ expect(event).to eql(deser_event)
234
189
  end
235
190
  end
236
191
  end