disiid_user 3.0.2 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/disiid_user.rb CHANGED
@@ -25,6 +25,19 @@ module DisiidUser
25
25
  klass.class_eval do
26
26
  scope :with_local_role, lambda { |role| where('role & ? > 0', 2**LOCAL_ROLES.index(role.to_s)) }
27
27
  end
28
+ klass.extend(ClassMethods)
29
+ end
30
+
31
+ ########################################################################
32
+ # Class Methods
33
+ #
34
+ module ClassMethods
35
+ # Search
36
+ # Return list of users that match the query search params
37
+ def search(args = {})
38
+ args.merge! :auth_token => DisiidUser::RemoteUser.auth_token
39
+ DisiidUser::RemoteUser.find :all, :params => args
40
+ end
28
41
  end
29
42
 
30
43
  def self.version_string
@@ -40,7 +53,12 @@ module DisiidUser
40
53
 
41
54
  # list of methid name that could be called from User instance to get data
42
55
  # from the RemoteUser instance
43
- REMOTE_ATTRIBUTES = %w(email first_name last_name homepage) unless defined? REMOTE_ATTRIBUTES
56
+ REMOTE_ATTRIBUTES = %w(email first_name last_name homepage
57
+ nickname homepage position office_address office_num
58
+ office_phone office_fax
59
+ provider ada_id okkam_id unitn_uid
60
+ photo photo_normal photo_thumb hide_photo
61
+ remote_created_at remote_updated_at) unless defined? REMOTE_ATTRIBUTES
44
62
 
45
63
  # List of roles for local setup
46
64
  def local_roles
@@ -110,7 +128,10 @@ module DisiidUser
110
128
  # interact with remote server to get user information: personal data and roles
111
129
  # active resource
112
130
  #
113
-
131
+ # Useful settings:
132
+ # - DisiidUser::RemoteUser.format = format
133
+ # - ActiveSupport.parse_json_times = true
134
+ #
114
135
  # ROLES defined here must be EQUAL with the one defined remote Class self.site
115
136
  class RemoteUser < ActiveResource::Base
116
137
  self.site = 'http://localhost:3001'
@@ -1,3 +1,3 @@
1
1
  module DisiidUser
2
- VERSION = "3.0.2"
2
+ VERSION = "3.1.0"
3
3
  end
@@ -0,0 +1,24 @@
1
+ {
2
+ "uuid": "6a002a40-bc63-4095-9bb0-f31bf386bf55",
3
+ "email":"admin@example.org",
4
+ "first_name":"John",
5
+ "last_name":"Smith",
6
+ "nickname":"john.smith",
7
+ "homepage":"http://john.smith.example.org",
8
+ "position":"full_proffesor",
9
+ "ada_id":"ADA1122334455",
10
+ "okkam_id":"kkilpp009iiouy7rccfw5aa",
11
+ "provider":null,
12
+ "unitn_uid":null,
13
+ "office_address":"via sommarive, 5",
14
+ "office_num":"D14",
15
+ "office_phone":"0461012345",
16
+ "office_fax":"0461540123",
17
+ "roles":["admin","whatever"],
18
+ "photo":"http://remote_url.example.com/assets/nophoto.jpg",
19
+ "photo_normal":"http://remote_url.example.com/assets/nophoto-normal.jpg",
20
+ "photo_thumb":"http://remote_url.example.com/assets/nophoto-thumb.jpg",
21
+ "hide_photo":false,
22
+ "remote_created_at":"2011-11-03T10:23:11Z",
23
+ "remote_updated_at":"2011-12-06T11:15:33Z"
24
+ }
@@ -5,8 +5,12 @@
5
5
  <first-name>John</first-name>
6
6
  <last-name>Smith</last-name>
7
7
  <nickname>john.smith</nickname>
8
- <photo>avatar.jpg</photo>
9
8
  <homepage>http://john.smith.example.org</homepage>
9
+ <position>full_proffesor</position>
10
+ <ada-id>ADA1122334455</ada-id>
11
+ <okkam-id>kkilpp009iiouy7rccfw5aa</okkam-id>
12
+ <provider nil="true"></provider>
13
+ <unitn-uid nil="true"></unitn-uid>
10
14
  <office-address>via sommarive, 5</office-address>
11
15
  <office-num>D14</office-num>
12
16
  <office-phone>0461012345</office-phone>
@@ -15,4 +19,11 @@
15
19
  <role>admin</role>
16
20
  <role>whatever</role>
17
21
  </roles>
22
+ <photo>http://remote_url.example.com/assets/nophoto.jpg</photo>
23
+ <photo-normal>http://remote_url.example.com/assets/nophoto-normal.jpg</photo-normal>
24
+ <photo-thumb>http://remote_url.example.com/assets/nophoto-thumb.jpg</photo-thumb>
25
+ <hide-photo type="boolean">false</hide-photo>
26
+ <remote-created-at type="datetime">2011-11-03T10:23:11Z</remote-created-at>
27
+ <remote-updated-at type="datetime">2011-12-06T11:15:33Z</remote-updated-at>
18
28
  </user>
29
+
@@ -128,6 +128,18 @@ describe DisiidUser do
128
128
  @user.homepage.should be_nil
129
129
  @user.first_name.should be_nil
130
130
  @user.last_name.should be_nil
131
+ @user.nickname.should be_nil
132
+ @user.homepage.should be_nil
133
+ @user.position.should be_nil
134
+ @user.office_address.should be_nil
135
+ @user.office_num.should be_nil
136
+ @user.office_phone.should be_nil
137
+ @user.office_fax.should be_nil
138
+ @user.provider.should be_nil
139
+ @user.ada_id.should be_nil
140
+ @user.okkam_id.should be_nil
141
+ @user.remote_created_at.should be_nil
142
+ @user.remote_updated_at.should be_nil
131
143
  end
132
144
 
133
145
  it 'should not raise an exception on attributes assignment' do
@@ -140,16 +152,41 @@ describe DisiidUser do
140
152
  end
141
153
 
142
154
  context 'when exists' do
143
- before {
155
+ before {
144
156
  @user.identity_url = "http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55"
145
157
  }
146
158
 
147
- it 'should have remote attributes' do
148
- @user.email.should == 'admin@example.org'
149
- @user.first_name.should == 'John'
150
- @user.last_name.should == 'Smith'
151
- @user.homepage.should == 'http://john.smith.example.org'
152
- end
159
+ [:xml, :json].each { |format|
160
+ it "should have remote attributes in #{format} format" do
161
+ DisiidUser::RemoteUser.format = format
162
+ ActiveSupport.parse_json_times = true
163
+
164
+ @user.email.should == 'admin@example.org'
165
+ @user.first_name.should == 'John'
166
+ @user.last_name.should == 'Smith'
167
+ @user.homepage.should == 'http://john.smith.example.org'
168
+ @user.nickname.should == 'john.smith'
169
+ @user.position.should == 'full_proffesor'
170
+ @user.office_address.should == 'via sommarive, 5'
171
+ @user.office_num.should == 'D14'
172
+ @user.office_phone.should == '0461012345'
173
+ @user.office_fax.should == '0461540123'
174
+ @user.provider.should be_nil
175
+ @user.unitn_uid.should be_nil
176
+ @user.ada_id.should == 'ADA1122334455'
177
+ @user.okkam_id.should == 'kkilpp009iiouy7rccfw5aa'
178
+ @user.photo.should == 'http://remote_url.example.com/assets/nophoto.jpg'
179
+ @user.photo_normal.should == 'http://remote_url.example.com/assets/nophoto-normal.jpg'
180
+ @user.photo_thumb.should == 'http://remote_url.example.com/assets/nophoto-thumb.jpg'
181
+ # in JSON the following two will be strings
182
+ # if ActiveSupport.parse_json_times is not set to true
183
+ @user.remote_created_at.should == DateTime.parse('2011-11-03T10:23:11Z')
184
+ @user.remote_updated_at.should == DateTime.parse('2011-12-06T11:15:33Z')
185
+ # for this to evaluate to boolean
186
+ # XML tag should contain type="boolean" attribute
187
+ @user.hide_photo.should be_false
188
+ end
189
+ }
153
190
 
154
191
  it 'should have assign methods like email=(...)' do
155
192
  @user.email = 'new@email.com'
@@ -175,6 +212,33 @@ describe DisiidUser do
175
212
  }
176
213
  @user.roles.length.should == 3
177
214
  end
178
- end # context 'when exists'
215
+ end # context 'when exists'
216
+
217
+ context 'when search' do
218
+ before { DisiidUser::RemoteUser.auth_token = 'sometoken' }
219
+
220
+ it 'should find a list of users with activeresource' do
221
+ @users = DisiidUser::RemoteUser.find(:all , :params => {:q => 'e', :auth_token => 'sometoken'})
222
+ @users.size.should == 3
223
+ @users[0].uuid.should == "7ee5003f-faaa-40ac-939c-615c0da69deb"
224
+ @users[1].uuid.should == "2632c516-eb32-4cc8-879f-e8060577fc14"
225
+ @users[2].uuid.should == "ad80daad-7a2f-4f5e-a62e-3189248486a9"
226
+ @users[0].photo.should == "http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/mouse-medium.jpg"
227
+ @users[1].nickname.should == "test.user"
228
+ @users[2].last_name.should == "service"
229
+ end
230
+
231
+ it 'should find a list of users through User model' do
232
+ @users = User.search(:q => 'e')
233
+ @users.size.should == 3
234
+ @users[0].uuid.should == "7ee5003f-faaa-40ac-939c-615c0da69deb"
235
+ @users[1].uuid.should == "2632c516-eb32-4cc8-879f-e8060577fc14"
236
+ @users[2].uuid.should == "ad80daad-7a2f-4f5e-a62e-3189248486a9"
237
+ @users[0].photo.should == "http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/mouse-medium.jpg"
238
+ @users[1].nickname.should == "test.user"
239
+ @users[2].last_name.should == "service"
240
+ end
241
+
242
+ end # context 'when search'
179
243
  end # context 'with remote user'
180
244
  end
data/spec/stub_user.rb CHANGED
@@ -18,6 +18,11 @@ class User
18
18
  include DisiidUser
19
19
  end
20
20
 
21
+ class FakeResponse
22
+ attr_accessor :body
23
+ def initialize(body); @body = body; end
24
+ end
25
+
21
26
  # Stub ActiveRecord so that it won't do real HTTP requests
22
27
  module ActiveResource
23
28
  class Connection
@@ -25,28 +30,28 @@ module ActiveResource
25
30
  # instead of doing a real HTTP request
26
31
  def get(path, *args)
27
32
  read_from_file(path)
28
- rescue
29
- raise ActiveResource::ResourceNotFound.new("dummy remote user didn't find that resource: #{path} #{args.inspect}")
30
- end
33
+ rescue; raise ActiveResource::ResourceNotFound; end
31
34
 
32
35
  # stubs PUT request so to not do it for real
33
36
  def put(path, payload, headers)
34
37
  read_from_file(path)
35
- rescue
36
- raise ActiveResource::ResourceNotFound.new("couldn't update dummy remote user: #{path} #{args.inspect}")
37
- end
38
-
38
+ rescue; raise ActiveResource::ResourceNotFound; end
39
39
 
40
40
  private
41
41
 
42
42
  def read_from_file(fake_url_path)
43
- # /collection_name/uuid?query
44
- record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
45
- # record string includes .xml or .json too
46
- filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
43
+ if matched = /users\.(xml|json)/.match(fake_url_path)
44
+ filename = "#{File.dirname(__FILE__)}/users.#{matched[1]}"
45
+ else
46
+ # /collection_name/uuid?query
47
+ record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
48
+ # record string includes .xml or .json too
49
+ filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
50
+ end
47
51
  # format is either ActiveResource::Formats::XmlFormat or JsonFormat
48
52
  # 3.0.x defaults to XML, 3.1.x defaults to JSON
49
- format.decode open(filename).read
53
+ data = open(filename).read
54
+ /3\.1/.match(ActiveResource::VERSION::STRING) ? FakeResponse.new(data) : format.decode(data)
50
55
  end
51
56
  end
52
57
  end
data/spec/users.json ADDED
@@ -0,0 +1 @@
1
+ [{"ada_id":"","created_at":"2011-10-13T21:25:16Z","ditwebuser_id":null,"email":"admin@test.org","first_name":"Alex 2","homepage":"http://alex.cloudware.it","last_name":"Test","nickname":".","office_address":"","office_fax":"","office_num":"d14","office_phone":"","okkam_id":"","position":"","provider":null,"unitn_uid":"","updated_at":"2011-12-06T18:10:52Z","uuid":"7ee5003f-faaa-40ac-939c-615c0da69deb","roles":["admin","service"],"photo":"http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/mouse-medium.jpg","photo_normal":"http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/normal_mouse-medium.jpg","photo_thumb":"http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/thumb_mouse-medium.jpg","hide_photo":false},{"ada_id":null,"created_at":"2011-11-03T10:23:11Z","ditwebuser_id":null,"email":"test@example.org","first_name":"Test","homepage":"","last_name":"User","nickname":"test.user","office_address":"addr","office_fax":"","office_num":"d14","office_phone":"","okkam_id":null,"position":null,"provider":null,"unitn_uid":null,"updated_at":"2011-12-06T11:15:33Z","uuid":"2632c516-eb32-4cc8-879f-e8060577fc14","roles":[],"photo":"http://localhost:3000/assets/nophoto.jpg","photo_normal":"http://localhost:3000/assets/nophoto-normal.jpg","photo_thumb":"http://localhost:3000/assets/nophoto-thumb.jpg","hide_photo":false},{"ada_id":null,"created_at":"2011-11-16T10:42:49Z","ditwebuser_id":null,"email":"tech@disi.unitn.it","first_name":"dsc","homepage":"","last_name":"service","nickname":"dsc.service","office_address":"","office_fax":"","office_num":"","office_phone":"","okkam_id":"","position":null,"provider":null,"unitn_uid":"","updated_at":"2011-11-28T14:32:49Z","uuid":"ad80daad-7a2f-4f5e-a62e-3189248486a9","roles":["service"],"photo":"http://localhost:3000/assets/nophoto.jpg","photo_normal":"http://localhost:3000/assets/nophoto-normal.jpg","photo_thumb":"http://localhost:3000/assets/nophoto-thumb.jpg","hide_photo":false}]
data/spec/users.xml ADDED
@@ -0,0 +1,84 @@
1
+
2
+ <?xml version="1.0" encoding="UTF-8"?>
3
+ <users type="array">
4
+ <user>
5
+ <uuid>7ee5003f-faaa-40ac-939c-615c0da69deb</uuid>
6
+ <email>admin@test.org</email>
7
+ <first-name>Alex 2</first-name>
8
+ <last-name>Test</last-name>
9
+ <nickname>.</nickname>
10
+ <homepage>http://alex.cloudware.it</homepage>
11
+ <position></position>
12
+ <office-address></office-address>
13
+ <office-num>d14</office-num>
14
+ <office-phone></office-phone>
15
+ <office-fax></office-fax>
16
+ <provider nil="true"></provider>
17
+ <ada-id></ada-id>
18
+ <okkam-id></okkam-id>
19
+ <unitn-uid></unitn-uid>
20
+ <ditwebuser-id type="integer" nil="true"></ditwebuser-id>
21
+ <created-at type="datetime">2011-10-13T21:25:16Z</created-at>
22
+ <updated-at type="datetime">2011-12-06T18:10:52Z</updated-at>
23
+ <roles type="array">
24
+ <role>admin</role>
25
+ <role>service</role>
26
+ </roles>
27
+ <photo>http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/mouse-medium.jpg</photo>
28
+ <photo-normal>http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/normal_mouse-medium.jpg</photo-normal>
29
+ <photo-thumb>http://localhost:3000/uploads/user/photo/7ee5003f-faaa-40ac-939c-615c0da69deb/thumb_mouse-medium.jpg</photo-thumb>
30
+ <hide-photo type="boolean">false</hide-photo>
31
+ </user>
32
+ <user>
33
+ <uuid>2632c516-eb32-4cc8-879f-e8060577fc14</uuid>
34
+ <email>test@example.org</email>
35
+ <first-name>Test</first-name>
36
+ <last-name>User</last-name>
37
+ <nickname>test.user</nickname>
38
+ <homepage></homepage>
39
+ <position nil="true"></position>
40
+ <office-address>addr</office-address>
41
+ <office-num>d14</office-num>
42
+ <office-phone></office-phone>
43
+ <office-fax></office-fax>
44
+ <provider nil="true"></provider>
45
+ <ada-id nil="true"></ada-id>
46
+ <okkam-id nil="true"></okkam-id>
47
+ <unitn-uid nil="true"></unitn-uid>
48
+ <ditwebuser-id type="integer" nil="true"></ditwebuser-id>
49
+ <created-at type="datetime">2011-11-03T10:23:11Z</created-at>
50
+ <updated-at type="datetime">2011-12-06T11:15:33Z</updated-at>
51
+ <roles type="array"/>
52
+ <photo>http://localhost:3000/assets/nophoto.jpg</photo>
53
+ <photo-normal>http://localhost:3000/assets/nophoto-normal.jpg</photo-normal>
54
+ <photo-thumb>http://localhost:3000/assets/nophoto-thumb.jpg</photo-thumb>
55
+ <hide-photo type="boolean">false</hide-photo>
56
+ </user>
57
+ <user>
58
+ <uuid>ad80daad-7a2f-4f5e-a62e-3189248486a9</uuid>
59
+ <email>tech@disi.unitn.it</email>
60
+ <first-name>dsc</first-name>
61
+ <last-name>service</last-name>
62
+ <nickname>dsc.service</nickname>
63
+ <homepage></homepage>
64
+ <position nil="true"></position>
65
+ <office-address></office-address>
66
+ <office-num></office-num>
67
+ <office-phone></office-phone>
68
+ <office-fax></office-fax>
69
+ <provider nil="true"></provider>
70
+ <ada-id nil="true"></ada-id>
71
+ <okkam-id></okkam-id>
72
+ <unitn-uid></unitn-uid>
73
+ <ditwebuser-id type="integer" nil="true"></ditwebuser-id>
74
+ <created-at type="datetime">2011-11-16T10:42:49Z</created-at>
75
+ <updated-at type="datetime">2011-11-28T14:32:49Z</updated-at>
76
+ <roles type="array">
77
+ <role>service</role>
78
+ </roles>
79
+ <photo>http://localhost:3000/assets/nophoto.jpg</photo>
80
+ <photo-normal>http://localhost:3000/assets/nophoto-normal.jpg</photo-normal>
81
+ <photo-thumb>http://localhost:3000/assets/nophoto-thumb.jpg</photo-thumb>
82
+ <hide-photo type="boolean">false</hide-photo>
83
+ </user>
84
+ </users>
metadata CHANGED
@@ -1,61 +1,57 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: disiid_user
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.1.0
4
5
  prerelease:
5
- version: 3.0.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Danilo Severina
9
9
  - Alex Vagin
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-11-30 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
13
+ date: 2011-12-15 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: rspec
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70317348018360 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
25
23
  type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
24
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *70317348018360
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: &70317348017780 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
36
34
  type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: activeresource
40
35
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *70317348017780
37
+ - !ruby/object:Gem::Dependency
38
+ name: activeresource
39
+ requirement: &70317348017160 !ruby/object:Gem::Requirement
42
40
  none: false
43
- requirements:
41
+ requirements:
44
42
  - - ~>
45
- - !ruby/object:Gem::Version
46
- version: "3"
43
+ - !ruby/object:Gem::Version
44
+ version: '3'
47
45
  type: :runtime
48
- version_requirements: *id003
46
+ prerelease: false
47
+ version_requirements: *70317348017160
49
48
  description: DISI - UniTN internal development
50
- email:
49
+ email:
51
50
  - tech@disi.unitn.it
52
51
  executables: []
53
-
54
52
  extensions: []
55
-
56
53
  extra_rdoc_files: []
57
-
58
- files:
54
+ files:
59
55
  - .gitignore
60
56
  - .rvmrc-template
61
57
  - Gemfile
@@ -65,44 +61,47 @@ files:
65
61
  - lib/disiid_user.rb
66
62
  - lib/disiid_user/version.rb
67
63
  - spec/596568c5-d6e7-4328-815c-c532aeed1198.xml
64
+ - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.json
68
65
  - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.xml
69
66
  - spec/disiid_user_spec.rb
70
67
  - spec/remote_user_spec.rb
71
68
  - spec/spec_helper.rb
72
69
  - spec/stub_methods_spec.rb
73
70
  - spec/stub_user.rb
71
+ - spec/users.json
72
+ - spec/users.xml
74
73
  homepage: http://disi.unitn.it
75
74
  licenses: []
76
-
77
75
  post_install_message:
78
76
  rdoc_options: []
79
-
80
- require_paths:
77
+ require_paths:
81
78
  - lib
82
- required_ruby_version: !ruby/object:Gem::Requirement
79
+ required_ruby_version: !ruby/object:Gem::Requirement
83
80
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: "0"
88
- required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
86
  none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
93
90
  version: 1.3.6
94
91
  requirements: []
95
-
96
92
  rubyforge_project: disiid_user
97
- rubygems_version: 1.8.9
93
+ rubygems_version: 1.8.10
98
94
  signing_key:
99
95
  specification_version: 3
100
96
  summary: DISI ID global user
101
- test_files:
97
+ test_files:
102
98
  - spec/596568c5-d6e7-4328-815c-c532aeed1198.xml
99
+ - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.json
103
100
  - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.xml
104
101
  - spec/disiid_user_spec.rb
105
102
  - spec/remote_user_spec.rb
106
103
  - spec/spec_helper.rb
107
104
  - spec/stub_methods_spec.rb
108
105
  - spec/stub_user.rb
106
+ - spec/users.json
107
+ - spec/users.xml