ruby-egnyte 0.1.6

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 (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +5 -0
  4. data/LICENSE.txt +23 -0
  5. data/README.markdown +113 -0
  6. data/Rakefile +4 -0
  7. data/egnyte.gemspec +32 -0
  8. data/includes/cacert.pem +3849 -0
  9. data/lib/egnyte.rb +25 -0
  10. data/lib/egnyte/client.rb +11 -0
  11. data/lib/egnyte/errors.rb +28 -0
  12. data/lib/egnyte/file.rb +51 -0
  13. data/lib/egnyte/folder.rb +112 -0
  14. data/lib/egnyte/folder_structure.rb +13 -0
  15. data/lib/egnyte/group.rb +185 -0
  16. data/lib/egnyte/helper.rb +41 -0
  17. data/lib/egnyte/item.rb +43 -0
  18. data/lib/egnyte/link.rb +109 -0
  19. data/lib/egnyte/permission.rb +181 -0
  20. data/lib/egnyte/session.rb +197 -0
  21. data/lib/egnyte/user.rb +207 -0
  22. data/lib/egnyte/version.rb +3 -0
  23. data/spec/file_spec.rb +71 -0
  24. data/spec/fixtures/folder_listing_no_files.json +12 -0
  25. data/spec/fixtures/group/group_all.json +17 -0
  26. data/spec/fixtures/group/group_by_parameter.json +10 -0
  27. data/spec/fixtures/group/group_by_parameter_empty.json +7 -0
  28. data/spec/fixtures/group/group_create.json +1 -0
  29. data/spec/fixtures/link/link.json +1 -0
  30. data/spec/fixtures/link/link_create.json +1 -0
  31. data/spec/fixtures/link/link_list.json +1 -0
  32. data/spec/fixtures/link/link_list_empty.json +1 -0
  33. data/spec/fixtures/list_file.json +27 -0
  34. data/spec/fixtures/list_folder.json +23 -0
  35. data/spec/fixtures/permission/permission_list.json +1 -0
  36. data/spec/fixtures/user/user_all.json +1007 -0
  37. data/spec/fixtures/user/user_by_email.json +27 -0
  38. data/spec/fixtures/user/user_create.json +20 -0
  39. data/spec/fixtures/user/user_find.json +20 -0
  40. data/spec/fixtures/user/user_update.json +20 -0
  41. data/spec/folder_spec.rb +207 -0
  42. data/spec/group_spec.rb +166 -0
  43. data/spec/helper_spec.rb +30 -0
  44. data/spec/links_spec.rb +156 -0
  45. data/spec/permissions_spec.rb +98 -0
  46. data/spec/spec_helper.rb +17 -0
  47. data/spec/user_spec.rb +212 -0
  48. metadata +260 -0
@@ -0,0 +1,27 @@
1
+ {
2
+ "startIndex":1,
3
+ "totalResults":1,
4
+ "itemsPerPage":100,
5
+ "resources":[
6
+ {
7
+ "id":12408258604,
8
+ "userName":"afisher",
9
+ "externalId":"afisher",
10
+ "email":"afisher@example.com",
11
+ "name":{
12
+ "formatted":"Alberta Fisher",
13
+ "familyName":"Fisher",
14
+ "givenName":"Alberta"
15
+ },
16
+ "active":false,
17
+ "locked":false,
18
+ "emailChangePending":true,
19
+ "authType":"sso",
20
+ "userType":"power",
21
+ "idpUserId":"afisher",
22
+ "userPrincipalName":null,
23
+ "expiryDate":null,
24
+ "deleteOnExpiry":null
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "id":12163350648,
3
+ "userName":"userA",
4
+ "externalId":null,
5
+ "email":"userA@example.com",
6
+ "name":{
7
+ "formatted":"user A",
8
+ "familyName":"A",
9
+ "givenName":"user"
10
+ },
11
+ "active":true,
12
+ "locked":false,
13
+ "emailChangePending":null,
14
+ "authType":"egnyte",
15
+ "userType":"power",
16
+ "idpUserId":null,
17
+ "userPrincipalName":null,
18
+ "expiryDate":null,
19
+ "deleteOnExpiry":null
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "id":12408258604,
3
+ "userName":"afisher",
4
+ "externalId":"afisher",
5
+ "email":"afisher@example.com",
6
+ "name":{
7
+ "formatted":"Alberta Fisher",
8
+ "familyName":"Fisher",
9
+ "givenName":"Alberta"
10
+ },
11
+ "active":false,
12
+ "locked":false,
13
+ "emailChangePending":true,
14
+ "authType":"sso",
15
+ "userType":"power",
16
+ "idpUserId":"afisher",
17
+ "userPrincipalName":null,
18
+ "expiryDate":null,
19
+ "deleteOnExpiry":null
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "id":12163350648,
3
+ "userName":"usera",
4
+ "externalId":"",
5
+ "email":"userA@example.com",
6
+ "name":{
7
+ "formatted":"user A",
8
+ "familyName":"A",
9
+ "givenName":"user"
10
+ },
11
+ "active":true,
12
+ "locked":false,
13
+ "emailChangePending":true,
14
+ "authType":"egnyte",
15
+ "userType":"power",
16
+ "idpUserId":"",
17
+ "userPrincipalName":null,
18
+ "expiryDate":null,
19
+ "deleteOnExpiry":null
20
+ }
@@ -0,0 +1,207 @@
1
+ #encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Egnyte::Folder do
6
+ before(:each) do
7
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/userinfo").
8
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer access_token', 'User-Agent'=>'Ruby'}).
9
+ to_return(:status => 200, :body => "", :headers => {})
10
+ @session = Egnyte::Session.new({
11
+ key: 'api_key',
12
+ domain: 'test',
13
+ access_token: 'access_token'
14
+ }, :implicit, 0.0)
15
+ @client = Egnyte::Client.new(@session)
16
+ end
17
+
18
+ describe "#upload" do
19
+ context "when the upload fails (e.g. when the service is unavailable)" do
20
+ it "raises an appropriate exception" do
21
+ file_contents = 'Some data.'
22
+
23
+ stub_request(:post, "https://test.egnyte.com/pubapi/v1/fs-content/apple/banana/LICENSE.txt")
24
+ .with(:headers => { 'Authorization' => 'Bearer access_token' }, :body => file_contents)
25
+ .to_return(:body => '', :status => 503)
26
+
27
+ folder = Egnyte::Folder.new({
28
+ 'path' => 'apple/banana',
29
+ 'name' => 'banana'
30
+ }, @session)
31
+
32
+ expect {
33
+ folder.upload('LICENSE.txt', StringIO.new(file_contents))
34
+ }.to raise_error(Egnyte::RequestError)
35
+ end
36
+ end
37
+
38
+ it "upload file to appropriate endpoint, and return a file object" do
39
+ stub_request(:post, "https://test.egnyte.com/pubapi/v1/fs-content/apple/banana/LICENSE.txt")
40
+ .with(:headers => { 'Authorization' => 'Bearer access_token' }, :body => File.open('./LICENSE.txt').read)
41
+ .to_return(:body => '', :status => 200, :headers => {
42
+ 'ETag' => 'c0c6c151-104b-4ddd-a0c7-eea809fc8a6a',
43
+ 'X-Sha512-Checksum' => '434390eddf638ab28e0f4668dca32e4a2b05c96eb3c8c0ca889788e204158cb4f240f1055ebac35745ede0e2349c83b407b9e4e0109bdc0b5ccdfe332a60fcfc',
44
+ 'last_modified' => 'Mon, 05 Aug 2013 22:37:35 GMT'
45
+ })
46
+
47
+ folder = Egnyte::Folder.new({
48
+ 'path' => 'apple/banana',
49
+ 'name' => 'banana'
50
+ }, @session)
51
+
52
+ file = nil
53
+
54
+ File.open( './LICENSE.txt' ) do |data|
55
+ file = folder.upload('LICENSE.txt', data)
56
+ end
57
+
58
+ expect(file.is_folder).to be false
59
+ expect(file.name).to eq('LICENSE.txt')
60
+ expect(file.entry_id).to eq('c0c6c151-104b-4ddd-a0c7-eea809fc8a6a')
61
+ expect(file.checksum).to eq('434390eddf638ab28e0f4668dca32e4a2b05c96eb3c8c0ca889788e204158cb4f240f1055ebac35745ede0e2349c83b407b9e4e0109bdc0b5ccdfe332a60fcfc')
62
+ expect(file.last_modified).to eq('Mon, 05 Aug 2013 22:37:35 GMT')
63
+ expect(file.size).to eq(1103)
64
+ end
65
+ end
66
+
67
+ describe "#create" do
68
+ it "should call post to fs/path with appropriate payload and return folder object" do
69
+ stub_request(:post, "https://test.egnyte.com/pubapi/v1/fs/apple/banana/New%20Folder")
70
+ .with(:headers => { 'Authorization' => 'Bearer access_token' }, :body => JSON.dump({"action" => "add_folder"}))
71
+ .to_return(:body => '', :status => 200)
72
+
73
+ folder = Egnyte::Folder.new({
74
+ 'path' => 'apple/banana',
75
+ 'name' => 'banana'
76
+ }, @session)
77
+
78
+ new_folder = folder.create('New Folder')
79
+ expect(new_folder.name).to eq('New Folder')
80
+ expect(new_folder.path).to eq('apple/banana/New Folder')
81
+ expect(new_folder.folders).to eq([])
82
+ end
83
+ end
84
+
85
+ describe "Folder::find" do
86
+ it "should return a folder object if the folder exists" do
87
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
88
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
89
+ .to_return(:body => File.read('./spec/fixtures/list_folder.json'), :status => 200)
90
+
91
+ expect(@client.folder.name).to eq('docs')
92
+ end
93
+
94
+ it "should raise FileOrFolderNotFound error for a non-existent folder" do
95
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/banana")
96
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
97
+ .to_return(:status => 404)
98
+
99
+ expect {@client.folder('banana')}.to raise_error( Egnyte::RecordNotFound )
100
+ end
101
+
102
+ it "should raise FolderExpected if path to file provided" do
103
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
104
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
105
+ .to_return(:body => File.read('./spec/fixtures/list_file.json'), :status => 200)
106
+
107
+ expect {@client.folder}.to raise_error( Egnyte::FolderExpected )
108
+ end
109
+ end
110
+
111
+ describe "Folder::permissions" do
112
+ it "should return a folder permissions object if the folder exists" do
113
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
114
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
115
+ .to_return(:body => File.read('./spec/fixtures/list_folder.json'), :status => 200)
116
+ expect(@client.folder.name).to eq('docs')
117
+ end
118
+
119
+ it "should raise FileOrFolderNotFound error for a non-existent folder" do
120
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/banana")
121
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
122
+ .to_return(:status => 404)
123
+
124
+ expect {@client.folder('banana')}.to raise_error( Egnyte::RecordNotFound )
125
+ end
126
+
127
+ it "should raise FolderExpected if path to file provided" do
128
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
129
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
130
+ .to_return(:body => File.read('./spec/fixtures/list_file.json'), :status => 200)
131
+
132
+ expect {@client.folder}.to raise_error( Egnyte::FolderExpected )
133
+ end
134
+ end
135
+
136
+ describe "#files" do
137
+ it "should return an array of file objects" do
138
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
139
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
140
+ .to_return(:body => File.read('./spec/fixtures/list_folder.json'), :status => 200)
141
+
142
+ folder = @client.folder
143
+ file = folder.files.first
144
+ expect(file).to be_instance_of(Egnyte::File)
145
+ expect(file.path).to eq('Shared/test.txt')
146
+ end
147
+
148
+ it "should return an empty array if there arent any files in the folder" do
149
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
150
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
151
+ .to_return(:body => File.read('./spec/fixtures/folder_listing_no_files.json'), :status => 200)
152
+
153
+ folder = @client.folder
154
+ files = folder.files
155
+ expect(files.size).to eq(0)
156
+ end
157
+ end
158
+
159
+ describe "#folders" do
160
+ it "should return an array of file objects" do
161
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
162
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
163
+ .to_return(:body => File.read('./spec/fixtures/list_folder.json'), :status => 200)
164
+
165
+ folder = @client.folder
166
+ file = folder.folders.first
167
+ expect(file).to be_instance_of(Egnyte::Folder)
168
+ expect(file.path).to eq('Shared/subfolder1')
169
+ end
170
+ end
171
+
172
+ context "permissions" do
173
+ before(:each) do
174
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/fs/Shared")
175
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
176
+ .to_return(:body => File.read('./spec/fixtures/list_folder.json'), :status => 200)
177
+ end
178
+
179
+ describe "#permissions" do
180
+ it "should returned a parsed list permissions" do
181
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/perms/folder/Shared")
182
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
183
+ .to_return(:body => File.read('./spec/fixtures/permission/permission_list.json'), :status => 200)
184
+ folder = Egnyte::Folder.find(@session, 'Shared')
185
+ permissions = folder.permissions
186
+ expect(permissions.class).to eq Egnyte::Permission
187
+ expect(permissions.data['groups'].size).to eq 2
188
+ expect(permissions.data['users'].size).to eq 66
189
+ expect(permissions.data['users']['knikolaus']).to eq "Owner"
190
+ end
191
+ end
192
+
193
+ describe "#apply_permission" do
194
+ it "should call the apply method in Egnyte::Permission" do
195
+ stub_request(:post, "https://test.egnyte.com/pubapi/v1/perms/folder/Shared")
196
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
197
+ .to_return(:body => "", :status => 200)
198
+ perm_obj = Egnyte::Permission.build_from_api_listing({'users' => [{'subject' => 'thintz', 'permission' => 'Viewer'}]})
199
+ folder = Egnyte::Folder.find(@session, 'Shared')
200
+ expect(Egnyte::Permission).to receive(:apply)
201
+ folder.apply_permissions(perm_obj)
202
+ end
203
+ end
204
+
205
+ end
206
+
207
+ end
@@ -0,0 +1,166 @@
1
+ require 'spec_helper'
2
+
3
+ describe Egnyte::Group do
4
+ before(:each) do
5
+ @invalid_group_params = {}
6
+ @valid_group_params = {
7
+ :displayName => "Test with members",
8
+ :members => [9967960066, 9967960068]
9
+ }
10
+ stub_request(:get, "https://test.egnyte.com/pubapi/v1/userinfo").
11
+ with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer access_token', 'User-Agent'=>'Ruby'}).
12
+ to_return(:status => 200, :body => "", :headers => {})
13
+ @session = Egnyte::Session.new({
14
+ key: 'api_key',
15
+ domain: 'test',
16
+ access_token: 'access_token'
17
+ }, :implicit, 0.0)
18
+ @client = Egnyte::Client.new(@session)
19
+ @group = Egnyte::Group.new(@session, @valid_group_params)
20
+ @group2 = Egnyte::Group.new(@session, "Test without members")
21
+ end
22
+
23
+ describe "#initialize" do
24
+
25
+ it 'instantiates a valid group if only a name is provided' do
26
+ expect(@group).to be_valid
27
+ end
28
+
29
+ it 'instantiates a valid group if a name and group members are provided' do
30
+ expect(@group2).to be_valid
31
+ end
32
+
33
+ end
34
+
35
+ describe "#create" do
36
+
37
+ it "should create a new group if valid" do
38
+ stub_request(:post, "https://test.egnyte.com/pubapi/v2/groups")
39
+ .with(:body => @group.to_json_for_api_call,
40
+ :headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer access_token', 'Content-Type'=>'application/json', 'User-Agent'=>'Ruby'})
41
+ .to_return(:status => 201, :body => File.read('./spec/fixtures/group/group_create.json'), :headers => {})
42
+ @group = Egnyte::Group.create(@session, @valid_group_params)
43
+ expect(@group.id).to eq "5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc"
44
+ end
45
+
46
+ it "should raise an error if it tries to create an invaid group" do
47
+ expect{ Egnyte::Group.create(@session, @invalid_group_params) }.to raise_error(Egnyte::MissingAttribute)
48
+ end
49
+
50
+ end
51
+
52
+ describe "#save" do
53
+
54
+ it 'should raise an error if an attribute is missing' do
55
+ @group.displayName = nil
56
+ expect{ @group.save }.to raise_error(Egnyte::MissingAttribute)
57
+ end
58
+
59
+ it 'should save a valid new group object by sending a POST to the Egnyte Group API' do
60
+ stub_request(:post, "https://test.egnyte.com/pubapi/v2/groups")
61
+ .with(:body => @group.to_json_for_api_call,
62
+ :headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer access_token', 'Content-Type'=>'application/json', 'User-Agent'=>'Ruby'})
63
+ .to_return(:status => 201, :body => File.read('./spec/fixtures/group/group_create.json'), :headers => {})
64
+ @group = @group.save
65
+ expect(@group.id).to eq "5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc"
66
+ end
67
+
68
+ it 'should update an existing group object by sending a PUT to the Egnyte Group API' do
69
+ stub_request(:put, "https://test.egnyte.com/pubapi/v2/groups/5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc")
70
+ .with(:body => @group.to_json_for_api_call,
71
+ :headers => {'Authorization'=>'Bearer access_token', 'Content-Type'=>'application/json'})
72
+ .to_return(:status => 200, :body => File.read('./spec/fixtures/group/group_create.json'), :headers => {})
73
+ @valid_group_params[:id] = "5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc"
74
+ @group = Egnyte::Group.new(@session, @valid_group_params)
75
+ @group.save
76
+ end
77
+
78
+ end
79
+
80
+ describe "#Group::find" do
81
+
82
+ it 'should find a group by id if the group exists' do
83
+ stub_request(:get, "https://test.egnyte.com/pubapi/v2/groups/5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc")
84
+ .with(:headers => {'Authorization'=>'Bearer access_token'})
85
+ .to_return(:status => 200, :body => File.read('./spec/fixtures/group/group_create.json'), :headers => {})
86
+ @group = @client.group('5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc')
87
+ expect(@group).to be_an Egnyte::Group
88
+ expect(@group.id).to eq '5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc'
89
+ end
90
+
91
+ end
92
+
93
+ describe "#Groups::all" do
94
+
95
+ it 'should list all users' do
96
+ stub_request(:get, "https://test.egnyte.com/pubapi/v2/groups?count=100&startIndex=1")
97
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
98
+ .to_return(:body => File.read('./spec/fixtures/group/group_all.json'), :status => 200)
99
+ list = Egnyte::Group.all(@session)
100
+ expect(list).to be_an Array
101
+ expect(list.first).to be_an Egnyte::Group
102
+ expect(list.size).to eq 3
103
+ end
104
+
105
+ end
106
+
107
+ describe "#Group::where" do
108
+
109
+ it 'should find groups that match the where filter' do
110
+ stub_request(:get, "https://test.egnyte.com/pubapi/v2/groups?count=100&filter=displayName%20eq%20%22Finance%22&startIndex=1")
111
+ .with(:headers => {'Authorization'=>'Bearer access_token'})
112
+ .to_return(:status => 200, :body => File.read('./spec/fixtures/group/group_by_parameter.json'), :headers => {})
113
+ group_list = Egnyte::Group.where(@session, {displayName: "Finance"})
114
+ expect(group_list).to be_an Array
115
+ expect(group_list.first).to be_an Egnyte::Group
116
+ expect(group_list.first.id).to eq "d5ea2e76-63e4-4b47-92af-0d7ba6972e3c"
117
+ expect(group_list.size).to eq 1
118
+ end
119
+
120
+ it 'should return an empty array if no match is found' do
121
+ stub_request(:get, "https://test.egnyte.com/pubapi/v2/groups?count=100&filter=displayName%20eq%20%22FakeEmailThatDoesNotExist%22&startIndex=1")
122
+ .with(:headers => {'Authorization'=>'Bearer access_token'})
123
+ .to_return(:status => 200, :body => File.read('./spec/fixtures/group/group_by_parameter_empty.json'), :headers => {})
124
+ group_list = Egnyte::Group.where(@session, {displayName: "FakeEmailThatDoesNotExist"})
125
+ expect(group_list).to be_an Array
126
+ expect(group_list.size).to eq 0
127
+ end
128
+
129
+ end
130
+
131
+ describe "#User::search" do
132
+
133
+ before(:each) do
134
+ stub_request(:get, "https://test.egnyte.com/pubapi/v2/groups?count=100&startIndex=1")
135
+ .with(:headers => { 'Authorization' => 'Bearer access_token' })
136
+ .to_return(:body => File.read('./spec/fixtures/group/group_all.json'), :status => 200)
137
+ end
138
+
139
+ it 'should find users that match the search criteria' do
140
+ user_list = Egnyte::Group.search(@session, "Fin")
141
+ expect(user_list).to be_an Array
142
+ expect(user_list.first).to be_an Egnyte::Group
143
+ expect(user_list.size).to eq 1
144
+ end
145
+
146
+ it 'should return an empty array if no match is found' do
147
+ user_list = Egnyte::Group.search(@session, 'NonexistantSearchCriteria')
148
+ expect(user_list).to be_an Array
149
+ expect(user_list.size).to eq 0
150
+ end
151
+
152
+ end
153
+
154
+ describe "#Group::delete" do
155
+
156
+ it 'should delete a group by id if the group exists' do
157
+ stub_request(:delete, "https://test.egnyte.com/pubapi/v2/groups/5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc")
158
+ .with(:headers => {'Authorization'=>'Bearer access_token'})
159
+ .to_return(:status => 200, :body => "", :headers => {})
160
+ expect(Egnyte::User).to receive(:delete).and_return({})
161
+ Egnyte::User.delete(@session, "5ef70bb0-edeb-4fcb-86d4-e1e1a0b6c9dc")
162
+ end
163
+
164
+ end
165
+
166
+ end