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'
@@ -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
- # The Actor = Person/Student))
45
- student = Caliper::Entities::Agent::Person.new
46
- student.id = 'https://some-university.edu/user/554433'
47
- membership1 = Caliper::Entities::LIS::Membership.new
48
- membership1.id = "https://some-university.edu/membership/001"
49
- membership1.member = "https://some-university.edu/user/554433"
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
- 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
- # # The Object being interacted with by the Actor = Assessment)
80
- # assessment = Caliper::Entities::Assessment::Assessment.new
81
- # assessment.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"
82
- # assessment.name = "American Revolution - Key Figures Assessment"
83
- # assessment.dateModified = '2015-09-02T11:30:00.000Z'
84
- # assessment.dateCreated = '2015-08-01T06:00:00.000Z'
85
- # assessment.datePublished = '2015-08-15T09:30:00.000Z'
86
- # assessment.version = "1.0"
87
- # assessment.dateToActivate = '2015-08-16T05:00:00.000Z'
88
- # assessment.dateToShow = '2015-08-16T05:00:00.000Z'
89
- # assessment.dateToStartOn = "2015-08-16T05:00:00.000Z"
90
- # assessment.dateToSubmit = "2015-09-28T11:59:59.000Z"
91
- # assessment.maxAttempts = 2
92
- # assessment.maxSubmits = 2
93
- # assessment.maxScore = 3.0
94
-
95
- # # The Assessment has three items
96
- assessmentItem1 = Caliper::Entities::Assessment::AssessmentItem.new
97
- assessmentItem1.id = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1/item1"
98
- assessmentItem1.name = "Assessment Item 1"
99
- assessmentItem1.isPartOf = "https://some-university.edu/politicalScience/2015/american-revolution-101/assessment1"#assessment.id
100
- assessmentItem1.maxAttempts = 2
101
- assessmentItem1.maxSubmits = 2
102
- assessmentItem1.maxScore = 1.0
103
- assessmentItem1.dateCreated = nil
104
- assessmentItem1.dateModified = nil
105
- assessmentItem1.version = "1.0"
106
- assessmentItem1.isTimeDependent = false
107
-
108
- # assessmentItem2 = Caliper::Entities::Assessment::AssessmentItem.new
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
- # The Object (edApp)
152
- edApp = Caliper::Entities::Agent::SoftwareApplication.new
153
- edApp.id = 'https://com.sat/super-assessment-tool'
154
- edApp.name = 'Super Assessment Tool'
155
- edApp.hasMembership = []
156
- edApp.dateCreated = '2015-08-01T06:00:00.000Z'
157
- edApp.dateModified = nil
158
-
159
- #LIS Course Offering
160
- courseOffering = Caliper::Entities::LIS::CourseOffering.new
161
- courseOffering.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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.category = nil
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.membership = [membership3]
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
- # The Assessment Event
192
- assessment_item_started_event = AssessmentItemEvent.new
193
- assessment_item_started_event.actor = student
194
- assessment_item_started_event.action = action
195
- assessment_item_started_event.object = assessmentItem1
196
- assessment_item_started_event.target = nil
197
- assessment_item_started_event.generated = attempt
198
- assessment_item_started_event.edApp = edApp
199
- assessment_item_started_event.group = group
200
- assessment_item_started_event.startedAtTime = '2015-09-15T10:15:00.000Z'
201
- assessment_item_started_event.endedAtTime = nil
202
- assessment_item_started_event.duration = nil
203
- # puts "Event JSON = #{assessment_item_started_event.to_json}'"
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
- assessment_item_started_event.to_json.should be_json_eql(expected_json)#.excluding("actor", "action", "object", "target", "generated", "edApp", "group")
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
- deser_assessment_item_started_event = AssessmentItemEvent.new
214
- deser_assessment_item_started_event.from_json data_hash
215
- # puts "AssessmentItemEvent from JSON = #{deser_assessment_item_started_event.to_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(assessment_item_started_event).to eql(deser_assessment_item_started_event)
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/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'
@@ -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
- # The Actor = Person/Student))
44
- student = Caliper::Entities::Agent::Person.new
45
- student.id = 'https://some-university.edu/user/554433'
46
-
47
- membership1 = Caliper::Entities::LIS::Membership.new
48
- membership1.id = "https://some-university.edu/membership/001"
49
- membership1.member = "https://some-university.edu/user/554433"
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
- # The Object (Assessment)
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
- # The Assessment has three items
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
- # The edApp
155
- edApp = Caliper::Entities::Agent::SoftwareApplication.new
156
- edApp.id = 'https://com.sat/super-assessment-tool'
157
- edApp.name = 'Super Assessment Tool'
158
- edApp.hasMembership = []
159
- edApp.dateCreated = '2015-08-01T06:00:00.000Z'
160
- edApp.dateModified = nil
161
-
162
- #LIS Course Offering
163
- courseOffering = Caliper::Entities::LIS::CourseOffering.new
164
- courseOffering.id = "https://some-university.edu/politicalScience/2015/american-revolution-101"
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.category = nil
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.membership = [membership3]
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
- # The Assignable Event
195
- assignable_event = AssignableEvent.new
196
- assignable_event.actor = student
197
- assignable_event.action = action
198
- assignable_event.object = assessment
199
- assignable_event.target = nil
200
- assignable_event.generated = attempt
201
- assignable_event.edApp = edApp
202
- assignable_event.group = group
203
- assignable_event.startedAtTime = '2015-09-15T10:15:00.000Z'
204
- assignable_event.endedAtTime = nil
205
- assignable_event.duration = nil
206
- # puts "Event JSON = #{assignable_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 = 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
- assignable_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", "edApp", "group")
214
150
 
215
151
  # puts "JSON from file = #{data_hash}"
216
- deser_assignable_event = AssignableEvent.new
217
- deser_assignable_event.from_json data_hash
218
- # puts "AssignableEvent from JSON = #{deser_assignable_event.to_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(assignable_event).to eql(deser_assignable_event)
157
+ expect(event).to eql(deser_event)
222
158
  end
223
159
  end
224
160
  end