moodle_rb 1.0.5 → 1.1.3

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 (67) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +36 -0
  3. data/.github/workflows/publish.yml +27 -0
  4. data/Dockerfile +10 -0
  5. data/README.md +73 -1
  6. data/docker-compose.yml +6 -0
  7. data/lib/moodle_rb/courses.rb +44 -0
  8. data/lib/moodle_rb/enrolments.rb +28 -1
  9. data/lib/moodle_rb/users.rb +16 -0
  10. data/lib/moodle_rb/version.rb +1 -1
  11. data/moodle_rb.gemspec +1 -2
  12. data/spec/cassettes/MoodleRb_Categories/_create/.yml +19 -19
  13. data/spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml +19 -19
  14. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml +20 -20
  15. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml +39 -38
  16. data/spec/cassettes/MoodleRb_Categories/_index/.yml +19 -19
  17. data/spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml +20 -20
  18. data/spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml +20 -20
  19. data/spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml +20 -20
  20. data/spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml +19 -19
  21. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml +52 -0
  22. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml +52 -0
  23. data/spec/cassettes/MoodleRb_Courses/_create/.yml +19 -19
  24. data/spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml +36 -36
  25. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml +20 -20
  26. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml +38 -38
  27. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml +20 -20
  28. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml +20 -20
  29. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml +39 -39
  30. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml +52 -0
  31. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml +56 -0
  32. data/spec/cassettes/MoodleRb_Courses/_index/.yml +19 -19
  33. data/spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml +20 -20
  34. data/spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml +52 -0
  35. data/spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml +51 -0
  36. data/spec/cassettes/MoodleRb_Courses/_show/.yml +19 -19
  37. data/spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml +20 -20
  38. data/spec/cassettes/MoodleRb_Enrolments/_create/.yml +19 -19
  39. data/spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml +19 -19
  40. data/spec/cassettes/MoodleRb_Enrolments/_destroy/.yml +51 -0
  41. data/spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml +52 -0
  42. data/spec/cassettes/MoodleRb_Grades/_by_assignment/.yml +19 -19
  43. data/spec/cassettes/MoodleRb_Grades/_by_course/.yml +19 -19
  44. data/spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml +19 -19
  45. data/spec/cassettes/MoodleRb_Users/_create/.yml +19 -19
  46. data/spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml +19 -19
  47. data/spec/cassettes/MoodleRb_Users/_destroy/.yml +19 -19
  48. data/spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml +19 -19
  49. data/spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml +20 -20
  50. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml +19 -19
  51. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml +20 -20
  52. data/spec/cassettes/MoodleRb_Users/_search/.yml +21 -21
  53. data/spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml +20 -20
  54. data/spec/cassettes/MoodleRb_Users/_search_identity/.yml +51 -0
  55. data/spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml +52 -0
  56. data/spec/cassettes/MoodleRb_Users/_show/.yml +19 -19
  57. data/spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml +20 -20
  58. data/spec/cassettes/MoodleRb_Users/_update/.yml +20 -20
  59. data/spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml +20 -20
  60. data/spec/lib/moodle_rb/categories_spec.rb +6 -6
  61. data/spec/lib/moodle_rb/client_spec.rb +3 -3
  62. data/spec/lib/moodle_rb/courses_spec.rb +85 -7
  63. data/spec/lib/moodle_rb/enrolments_spec.rb +36 -3
  64. data/spec/lib/moodle_rb/grades_spec.rb +4 -4
  65. data/spec/lib/moodle_rb/users_spec.rb +37 -8
  66. data/spec/lib/moodle_rb_spec.rb +2 -2
  67. metadata +117 -135
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_search_identity&wstoken=
6
+ body:
7
+ encoding: UTF-8
8
+ string: query=moodle_student%40mailinator.com
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Accept-Ranges:
16
+ - bytes
17
+ - none
18
+ Access-Control-Allow-Origin:
19
+ - "*"
20
+ Age:
21
+ - '0'
22
+ Cache-Control:
23
+ - private, must-revalidate, pre-check=0, post-check=0, max-age=0
24
+ Content-Type:
25
+ - application/json
26
+ Date:
27
+ - Tue, 11 Jan 2022 21:28:57 GMT
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Pragma:
31
+ - no-cache
32
+ Server:
33
+ - Moodle
34
+ X-Cache:
35
+ - MISS
36
+ X-Clacks-Overhead:
37
+ - GNU Terry Pratchett
38
+ X-Ec2-Instance-Id:
39
+ - i-0afd4744d7a60c5d7
40
+ X-Powered-By:
41
+ - Moodle Ninjas
42
+ Content-Length:
43
+ - '103'
44
+ Connection:
45
+ - keep-alive
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid
49
+ token - token not found"}'
50
+ http_version:
51
+ recorded_at: Tue, 11 Jan 2022 21:28:24 GMT
52
+ recorded_with: VCR 2.9.3
@@ -1,39 +1,39 @@
1
- ---
1
+ ---
2
2
  recorded_with: VCR 2.9.3
3
- http_interactions:
4
- - request:
3
+ http_interactions:
4
+ - request:
5
5
  method: post
6
6
  uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_get_users&wstoken=60fc9c9415259404795094957e4ab32f
7
- body:
7
+ body:
8
8
  string: criteria[0][key]=id&criteria[0][value]=5
9
9
  headers: {}
10
10
 
11
- response:
12
- status:
11
+ response:
12
+ status:
13
13
  code: 200
14
14
  message: OK
15
- headers:
16
- Server:
15
+ headers:
16
+ Server:
17
17
  - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/v5.20.0
18
- Pragma:
18
+ Pragma:
19
19
  - no-cache
20
- Date:
20
+ Date:
21
21
  - Sun, 12 Apr 2015 01:01:44 GMT
22
- Access-Control-Allow-Origin:
22
+ Access-Control-Allow-Origin:
23
23
  - "*"
24
- Content-Length:
24
+ Content-Length:
25
25
  - "353"
26
- X-Powered-By:
26
+ X-Powered-By:
27
27
  - PHP/5.6.2
28
- Expires:
28
+ Expires:
29
29
  - Thu, 01 Jan 1970 00:00:00 GMT
30
- Cache-Control:
30
+ Cache-Control:
31
31
  - private, must-revalidate, pre-check=0, post-check=0, max-age=0
32
- Content-Type:
32
+ Content-Type:
33
33
  - application/json
34
- Accept-Ranges:
34
+ Accept-Ranges:
35
35
  - none
36
- body:
36
+ body:
37
37
  string: "{\"users\":[{\"id\":5,\"firstname\":\"Austin\",\"lastname\":\"Powers\",\"fullname\":\"Austin Powers\",\"email\":\"austinp1@jobready.com.au\",\"firstaccess\":0,\"lastaccess\":0,\"profileimageurlsmall\":\"http:\\/\\/localhost:8888\\/moodle28\\/pluginfile.php\\/69\\/user\\/icon\\/f2\",\"profileimageurl\":\"http:\\/\\/localhost:8888\\/moodle28\\/pluginfile.php\\/69\\/user\\/icon\\/f1\"}],\"warnings\":[]}"
38
- http_version:
38
+ http_version:
39
39
  recorded_at: Sun, 12 Apr 2015 01:01:44 GMT
@@ -1,39 +1,39 @@
1
- ---
1
+ ---
2
2
  recorded_with: VCR 2.9.3
3
- http_interactions:
4
- - request:
3
+ http_interactions:
4
+ - request:
5
5
  method: post
6
- uri: http://localhost:8888/moodle29/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_get_users&wstoken=
7
- body:
6
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_get_users&wstoken=
7
+ body:
8
8
  string: criteria[0][value]=5&criteria[0][key]=id
9
9
  headers: {}
10
10
 
11
- response:
12
- status:
11
+ response:
12
+ status:
13
13
  code: 200
14
14
  message: OK
15
- headers:
16
- Cache-Control:
15
+ headers:
16
+ Cache-Control:
17
17
  - private, must-revalidate, pre-check=0, post-check=0, max-age=0
18
- Pragma:
18
+ Pragma:
19
19
  - no-cache
20
- Server:
20
+ Server:
21
21
  - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
22
- Accept-Ranges:
22
+ Accept-Ranges:
23
23
  - none
24
- Content-Type:
24
+ Content-Type:
25
25
  - application/json
26
- Date:
26
+ Date:
27
27
  - Mon, 20 Jun 2016 22:30:45 GMT
28
- Expires:
28
+ Expires:
29
29
  - Thu, 01 Jan 1970 00:00:00 GMT
30
- Access-Control-Allow-Origin:
30
+ Access-Control-Allow-Origin:
31
31
  - "*"
32
- Content-Length:
32
+ Content-Length:
33
33
  - "103"
34
- X-Powered-By:
34
+ X-Powered-By:
35
35
  - PHP/5.6.2
36
- body:
36
+ body:
37
37
  string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
38
- http_version:
38
+ http_version:
39
39
  recorded_at: Mon, 20 Jun 2016 22:30:45 GMT
@@ -1,39 +1,39 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: post
5
- uri: http://localhost:8888/moodle29/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=87b95af2df709fa60b395b5c59a3fc2e
6
- body:
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=60fc9c9415259404795094957e4ab32f
6
+ body:
7
7
  string: users[0][email]=samg%40jobready.com.au&users[0][id]=4
8
8
  headers: {}
9
9
 
10
- response:
11
- status:
10
+ response:
11
+ status:
12
12
  code: 200
13
13
  message: OK
14
- headers:
15
- Expires:
14
+ headers:
15
+ Expires:
16
16
  - Thu, 01 Jan 1970 00:00:00 GMT
17
- X-Powered-By:
17
+ X-Powered-By:
18
18
  - PHP/5.6.2
19
- Content-Type:
19
+ Content-Type:
20
20
  - application/json
21
- Content-Length:
21
+ Content-Length:
22
22
  - "4"
23
- Date:
23
+ Date:
24
24
  - Wed, 08 Jun 2016 06:40:27 GMT
25
- Access-Control-Allow-Origin:
25
+ Access-Control-Allow-Origin:
26
26
  - "*"
27
- Accept-Ranges:
27
+ Accept-Ranges:
28
28
  - none
29
- Pragma:
29
+ Pragma:
30
30
  - no-cache
31
- Server:
31
+ Server:
32
32
  - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
33
- Cache-Control:
33
+ Cache-Control:
34
34
  - private, must-revalidate, pre-check=0, post-check=0, max-age=0
35
- body:
35
+ body:
36
36
  string: "null"
37
- http_version:
37
+ http_version:
38
38
  recorded_at: Wed, 08 Jun 2016 06:40:27 GMT
39
39
  recorded_with: VCR 2.9.3
@@ -1,39 +1,39 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: post
5
- uri: http://localhost:8888/moodle29/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=
6
- body:
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=
6
+ body:
7
7
  string: users[0][email]=&users[0][id]=4
8
8
  headers: {}
9
9
 
10
- response:
11
- status:
10
+ response:
11
+ status:
12
12
  code: 200
13
13
  message: OK
14
- headers:
15
- X-Powered-By:
14
+ headers:
15
+ X-Powered-By:
16
16
  - PHP/5.6.2
17
- Accept-Ranges:
17
+ Accept-Ranges:
18
18
  - none
19
- Server:
19
+ Server:
20
20
  - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
21
- Pragma:
21
+ Pragma:
22
22
  - no-cache
23
- Content-Type:
23
+ Content-Type:
24
24
  - application/json
25
- Access-Control-Allow-Origin:
25
+ Access-Control-Allow-Origin:
26
26
  - "*"
27
- Expires:
27
+ Expires:
28
28
  - Thu, 01 Jan 1970 00:00:00 GMT
29
- Date:
29
+ Date:
30
30
  - Mon, 20 Jun 2016 22:39:11 GMT
31
- Cache-Control:
31
+ Cache-Control:
32
32
  - private, must-revalidate, pre-check=0, post-check=0, max-age=0
33
- Content-Length:
33
+ Content-Length:
34
34
  - "103"
35
- body:
35
+ body:
36
36
  string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
37
- http_version:
37
+ http_version:
38
38
  recorded_at: Mon, 20 Jun 2016 22:39:11 GMT
39
39
  recorded_with: VCR 2.9.3
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Categories do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:category_moodle_rb) { MoodleRb.new(token, url).categories }
7
7
 
8
8
  describe '#index', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:body, :path], :record => :once
10
10
  } do
11
11
  let(:result) { category_moodle_rb.index }
12
12
 
@@ -27,7 +27,7 @@ describe MoodleRb::Categories do
27
27
  end
28
28
 
29
29
  describe '#create', :vcr => {
30
- :match_requests_on => [:headers], :record => :once
30
+ :match_requests_on => [:path], :record => :once
31
31
  } do
32
32
  let(:params) do
33
33
  {
@@ -60,7 +60,7 @@ describe MoodleRb::Categories do
60
60
  end
61
61
 
62
62
  describe '#show', :vcr => {
63
- :match_requests_on => [:headers], :record => :once
63
+ :match_requests_on => [:path], :record => :once
64
64
  } do
65
65
  let(:id) { 1 }
66
66
  let(:result) { category_moodle_rb.show(id) }
@@ -82,7 +82,7 @@ describe MoodleRb::Categories do
82
82
  end
83
83
 
84
84
  describe '#destroy', :vcr => {
85
- :match_requests_on => [:headers], :record => :once
85
+ :match_requests_on => [:path], :record => :once
86
86
  } do
87
87
  context 'when using valid token' do
88
88
  let!(:id) { category_moodle_rb.create(:name => '_')['id'] }
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Client do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:moodle_rb) { MoodleRb.new(token, url) }
7
7
 
8
8
  describe '#site_info', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:body, :path], :record => :once
10
10
  } do
11
11
  let(:result) { moodle_rb.site_info }
12
12
 
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Courses do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:course_moodle_rb) { MoodleRb.new(token, url).courses }
7
7
  let(:params) do
8
8
  {
@@ -14,7 +14,7 @@ describe MoodleRb::Courses do
14
14
  end
15
15
 
16
16
  describe '#index', :vcr => {
17
- :match_requests_on => [:body, :headers], :record => :once
17
+ :match_requests_on => [:body, :path], :record => :once
18
18
  } do
19
19
  let(:result) { course_moodle_rb.index }
20
20
 
@@ -35,7 +35,7 @@ describe MoodleRb::Courses do
35
35
  end
36
36
 
37
37
  describe '#create', :vcr => {
38
- :match_requests_on => [:headers], :record => :once
38
+ :match_requests_on => [:path], :record => :once
39
39
  } do
40
40
  let(:result) { course_moodle_rb.create(params) }
41
41
 
@@ -60,7 +60,7 @@ describe MoodleRb::Courses do
60
60
  end
61
61
 
62
62
  describe '#show', :vcr => {
63
- :match_requests_on => [:headers], :record => :once
63
+ :match_requests_on => [:path], :record => :once
64
64
  } do
65
65
  let(:id) { 1 }
66
66
  let(:result) { course_moodle_rb.show(id) }
@@ -82,7 +82,7 @@ describe MoodleRb::Courses do
82
82
  end
83
83
 
84
84
  describe '#destroy', :vcr => {
85
- :match_requests_on => [:headers], :record => :once
85
+ :match_requests_on => [:path], :record => :once
86
86
  } do
87
87
  context 'when using valid token' do
88
88
  let(:id) { course_moodle_rb.create(params)['id'] }
@@ -117,7 +117,7 @@ describe MoodleRb::Courses do
117
117
  end
118
118
 
119
119
  describe '#enrolled_users', :vcr => {
120
- :match_requests_on => [:headers], :record => :once
120
+ :match_requests_on => [:path], :record => :once
121
121
  } do
122
122
  let(:course_id) { 8 }
123
123
 
@@ -146,4 +146,82 @@ describe MoodleRb::Courses do
146
146
  end
147
147
  end
148
148
  end
149
+
150
+ describe '#grade_items', :vcr => {
151
+ :match_requests_on => [:path], :record => :once
152
+ } do
153
+ let(:course_id) { 5 }
154
+
155
+ context 'when using valid token' do
156
+ let(:result) { course_moodle_rb.grade_items(course_id) }
157
+ let(:user_grades) { result.first }
158
+
159
+ specify do
160
+ expect(result).to be_a Array
161
+ expect(user_grades).to have_key 'gradeitems'
162
+ end
163
+ end
164
+
165
+ context 'when using invalid token' do
166
+ let(:token) { '' }
167
+ specify do
168
+ expect{ course_moodle_rb.grade_items(course_id) }.to raise_error(
169
+ MoodleRb::MoodleError,
170
+ 'Invalid token - token not found'
171
+ )
172
+ end
173
+ end
174
+ end
175
+
176
+ describe '#contents', :vcr => {
177
+ :match_requests_on => [:path], :record => :once
178
+ } do
179
+ let(:course_id) { 5 }
180
+
181
+ context 'when using valid token' do
182
+ let(:result) { course_moodle_rb.contents(course_id) }
183
+ let(:enrolment) { result.first }
184
+
185
+ specify do
186
+ expect(result).to be_a Hash
187
+ expect(result).to have_key 'modules'
188
+ end
189
+ end
190
+
191
+ context 'when using invalid token' do
192
+ let(:token) { '' }
193
+ specify do
194
+ expect{ course_moodle_rb.contents(course_id) }.to raise_error(
195
+ MoodleRb::MoodleError,
196
+ 'Invalid token - token not found'
197
+ )
198
+ end
199
+ end
200
+ end
201
+
202
+ describe '#module', :vcr => {
203
+ :match_requests_on => [:path], :record => :once
204
+ } do
205
+ let(:course_module_id) { 21 }
206
+
207
+ context 'when using valid token' do
208
+ let(:result) { course_moodle_rb.module(course_module_id) }
209
+
210
+ specify do
211
+ expect(result).to be_a Hash
212
+ expect(result).to have_key 'name'
213
+ expect(result).to have_key 'gradepass'
214
+ end
215
+ end
216
+
217
+ context 'when using invalid token' do
218
+ let(:token) { '' }
219
+ specify do
220
+ expect{ course_moodle_rb.module(course_module_id) }.to raise_error(
221
+ MoodleRb::MoodleError,
222
+ 'Invalid token - token not found'
223
+ )
224
+ end
225
+ end
226
+ end
149
227
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Enrolments do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:enrolment_moodle_rb) { MoodleRb.new(token, url).enrolments }
7
7
 
8
8
  describe '#create', :vcr => {
9
- :match_requests_on => [:headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:params) do
12
12
  {
@@ -36,4 +36,37 @@ describe MoodleRb::Enrolments do
36
36
  end
37
37
  end
38
38
  end
39
+
40
+ describe '#destroy', :vcr => {
41
+ :match_requests_on => [:path], :record => :once
42
+ } do
43
+ let(:params) do
44
+ {
45
+ :user_id => '7',
46
+ :course_id => '5'
47
+ }
48
+ end
49
+
50
+ let(:result) { enrolment_moodle_rb.destroy(params) }
51
+
52
+ specify do
53
+ expect(result).to eq true
54
+ end
55
+
56
+ context 'when user or course id is invalid' do
57
+ let(:params) do
58
+ {
59
+ :user_id => 9999,
60
+ :course_id => 9999
61
+ }
62
+ end
63
+
64
+ specify do
65
+ expect{ result }.to raise_error(
66
+ MoodleRb::MoodleError,
67
+ "Can't find data record in database table course."
68
+ )
69
+ end
70
+ end
71
+ end
39
72
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Grades do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:grade_moodle_rb) { MoodleRb.new(token, url).grades }
7
7
 
8
8
  describe '#by_assignment', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:assignment_id) { 1 }
12
12
  let(:result) { grade_moodle_rb.by_assignment(assignment_id) }
@@ -18,7 +18,7 @@ describe MoodleRb::Grades do
18
18
  end
19
19
 
20
20
  describe '#by_course', :vcr => {
21
- :match_requests_on => [:headers], :record => :once
21
+ :match_requests_on => [:path], :record => :once
22
22
  } do
23
23
  let(:course_id) { 8 }
24
24
  let(:user_ids) { 5 }
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Users do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:user_moodle_rb) { MoodleRb.new(token, url).users }
7
7
 
8
8
  describe '#create', :vcr => {
9
- :match_requests_on => [:headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:params) do
12
12
  {
@@ -43,7 +43,7 @@ describe MoodleRb::Users do
43
43
  end
44
44
 
45
45
  describe '#show', :vcr => {
46
- :match_requests_on => [:headers], :record => :once
46
+ :match_requests_on => [:path], :record => :once
47
47
  } do
48
48
  let(:id) { 5 }
49
49
  let(:result) { user_moodle_rb.show(id) }
@@ -65,7 +65,7 @@ describe MoodleRb::Users do
65
65
  end
66
66
 
67
67
  describe '#destroy', :vcr => {
68
- :match_requests_on => [:headers], :record => :once
68
+ :match_requests_on => [:path], :record => :once
69
69
  } do
70
70
  let(:id) { 5 }
71
71
  let(:result) { user_moodle_rb.destroy(id) }
@@ -96,7 +96,7 @@ describe MoodleRb::Users do
96
96
  end
97
97
 
98
98
  describe '#enrolled_courses', :vcr => {
99
- :match_requests_on => [:headers], :record => :once
99
+ :match_requests_on => [:path], :record => :once
100
100
  } do
101
101
  let(:user_id) { 3 }
102
102
  let(:result) { user_moodle_rb.enrolled_courses(user_id) }
@@ -119,7 +119,7 @@ describe MoodleRb::Users do
119
119
  end
120
120
 
121
121
  describe '#search', :vcr => {
122
- :match_requests_on => [:headers], :record => :once
122
+ :match_requests_on => [:path], :record => :once
123
123
  } do
124
124
  let(:results) { user_moodle_rb.search({ :firstname => 'Guest%' }) }
125
125
 
@@ -140,8 +140,37 @@ describe MoodleRb::Users do
140
140
  end
141
141
  end
142
142
 
143
+ describe '#search_identity', :vcr => {
144
+ :match_requests_on => [:path], :record => :once
145
+ } do
146
+ let(:results) { user_moodle_rb.search_identity('moodle_student@mailinator.com') }
147
+
148
+ specify do
149
+ expect(results).to be_a Array
150
+ expect(results.first).to be_a Hash
151
+ expect(results.first['id']).to eq 25
152
+ expect(results.first['fullname']).to eq 'Moodle Student'
153
+ expect(results.first['extrafields'].first['name']).to eq 'idnumber'
154
+ expect(results.first['extrafields'].first['value']).to eq 'MS01'
155
+ expect(results.first['extrafields'].last['name']).to eq 'email'
156
+ expect(results.first['extrafields'].last['value']).to eq 'moodle_student@mailinator.com'
157
+ end
158
+
159
+ context 'when using invalid token' do
160
+ let(:token) { '' }
161
+ specify do
162
+ expect do
163
+ user_moodle_rb.search_identity('moodle_student@mailinator.com')
164
+ end.to raise_error(
165
+ MoodleRb::MoodleError,
166
+ 'Invalid token - token not found'
167
+ )
168
+ end
169
+ end
170
+ end
171
+
143
172
  describe '#update', :vcr => {
144
- :match_requests_on => [:headers], :record => :once
173
+ :match_requests_on => [:path], :record => :once
145
174
  } do
146
175
  let(:user_id) { 4 }
147
176
  let(:result) do
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:moodle_rb) { MoodleRb.new(token, url) }
7
7
 
8
8
  describe 'new' do