artikcloud 2.0.5 → 2.0.7

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -1
  3. data/LICENSE +1 -2
  4. data/README.md +50 -4
  5. data/artikcloud.gemspec +29 -5
  6. data/docs/DeviceTask.md +13 -0
  7. data/docs/DeviceTaskUpdateRequest.md +8 -0
  8. data/docs/DeviceTaskUpdateResponse.md +8 -0
  9. data/docs/DeviceTypeInfo.md +14 -0
  10. data/docs/DeviceTypeInfoEnvelope.md +8 -0
  11. data/docs/DeviceTypesApi.md +61 -0
  12. data/docs/DeviceTypesInfo.md +14 -0
  13. data/docs/DeviceTypesInfoEnvelope.md +8 -0
  14. data/docs/DevicesManagementApi.md +870 -0
  15. data/docs/EventFeedData.md +10 -0
  16. data/docs/MetadataEnvelope.md +8 -0
  17. data/docs/MetadataPropertiesEnvelope.md +8 -0
  18. data/docs/MetadataQueryEnvelope.md +11 -0
  19. data/docs/MetadataRequest.md +7 -0
  20. data/docs/Task.md +18 -0
  21. data/docs/TaskByDid.md +19 -0
  22. data/docs/TaskByDidList.md +8 -0
  23. data/docs/TaskByDidListEnvelope.md +11 -0
  24. data/docs/TaskEnvelope.md +8 -0
  25. data/docs/TaskHistory.md +13 -0
  26. data/docs/TaskHistoryList.md +8 -0
  27. data/docs/TaskList.md +8 -0
  28. data/docs/TaskListEnvelope.md +12 -0
  29. data/docs/TaskParameters.md +9 -0
  30. data/docs/TaskRequest.md +13 -0
  31. data/docs/TaskStatus.md +13 -0
  32. data/docs/TaskStatusCounts.md +12 -0
  33. data/docs/TaskStatuses.md +19 -0
  34. data/docs/TaskStatusesEnvelope.md +11 -0
  35. data/docs/TaskStatusesHistoryEnvelope.md +8 -0
  36. data/docs/TaskUpdateRequest.md +8 -0
  37. data/docs/TaskUpdateResponse.md +8 -0
  38. data/docs/TasksStatusCounts.md +11 -0
  39. data/lib/artikcloud/api/device_types_api.rb +66 -0
  40. data/lib/artikcloud/api/devices_management_api.rb +971 -0
  41. data/lib/artikcloud/models/device_task.rb +250 -0
  42. data/lib/artikcloud/models/device_task_update_request.rb +200 -0
  43. data/lib/artikcloud/models/device_task_update_response.rb +200 -0
  44. data/lib/artikcloud/models/device_type_info.rb +260 -0
  45. data/lib/artikcloud/models/device_type_info_envelope.rb +199 -0
  46. data/lib/artikcloud/models/device_types_info.rb +260 -0
  47. data/lib/artikcloud/models/device_types_info_envelope.rb +199 -0
  48. data/lib/artikcloud/models/event_feed_data.rb +222 -0
  49. data/lib/artikcloud/models/metadata_envelope.rb +202 -0
  50. data/lib/artikcloud/models/metadata_properties_envelope.rb +201 -0
  51. data/lib/artikcloud/models/metadata_query_envelope.rb +232 -0
  52. data/lib/artikcloud/models/metadata_request.rb +190 -0
  53. data/lib/artikcloud/models/task.rb +302 -0
  54. data/lib/artikcloud/models/task_by_did.rb +314 -0
  55. data/lib/artikcloud/models/task_by_did_list.rb +202 -0
  56. data/lib/artikcloud/models/task_by_did_list_envelope.rb +230 -0
  57. data/lib/artikcloud/models/task_envelope.rb +200 -0
  58. data/lib/artikcloud/models/task_history.rb +250 -0
  59. data/lib/artikcloud/models/task_history_list.rb +202 -0
  60. data/lib/artikcloud/models/task_list.rb +202 -0
  61. data/lib/artikcloud/models/task_list_envelope.rb +240 -0
  62. data/lib/artikcloud/models/task_parameters.rb +210 -0
  63. data/lib/artikcloud/models/task_request.rb +252 -0
  64. data/lib/artikcloud/models/task_status.rb +250 -0
  65. data/lib/artikcloud/models/task_status_counts.rb +240 -0
  66. data/lib/artikcloud/models/task_statuses.rb +314 -0
  67. data/lib/artikcloud/models/task_statuses_envelope.rb +230 -0
  68. data/lib/artikcloud/models/task_statuses_history_envelope.rb +200 -0
  69. data/lib/artikcloud/models/task_update_request.rb +200 -0
  70. data/lib/artikcloud/models/task_update_response.rb +200 -0
  71. data/lib/artikcloud/models/tasks_status_counts.rb +230 -0
  72. data/lib/artikcloud/version.rb +1 -1
  73. data/lib/artikcloud.rb +31 -0
  74. data/pom.xml +1 -1
  75. data/spec/api/devices_api_spec.rb +7 -10
  76. data/spec/api/devices_management_api_spec.rb +251 -0
  77. data/spec/api/messages_api_spec.rb +67 -25
  78. data/spec/api/tokens_api_spec.rb +10 -33
  79. data/spec/api/users_api_spec.rb +65 -14
  80. data/spec/api_client_spec.rb +237 -0
  81. data/spec/configuration_spec.rb +53 -0
  82. data/spec/factories/devices.rb +32 -0
  83. data/spec/factories/users.rb +31 -0
  84. data/spec/fixtures/cassettes/DevicesApi/get_device_presence_test/should_work.yml +50 -0
  85. data/spec/fixtures/cassettes/MessagesApi/get_message_snapshots/should_work.yml +54 -0
  86. data/spec/fixtures/cassettes/MessagesApi/send_actions/should_work.yml +93 -0
  87. data/spec/fixtures/cassettes/MessagesApi/send_message_action_test/should_work.yml +99 -0
  88. data/spec/fixtures/cassettes/TokensApi/refresh_token_test/should_work.yml +43 -0
  89. data/spec/fixtures/cassettes/TokensApi/token_info_test/should_work.yml +38 -0
  90. data/spec/fixtures/cassettes/UsersApi/get_self_test/should_work.yml +53 -0
  91. data/spec/fixtures/cassettes/UsersApi/get_user_device_types_test/should_work.yml +55 -0
  92. data/spec/fixtures/cassettes/UsersApi/get_user_devices_test/should_work.yml +55 -0
  93. data/spec/fixtures/cassettes/UsersApi/get_user_properties_update_user_properties_and_delete_user_properties_test/should_work.yml +52 -0
  94. data/spec/fixtures/cassettes/UsersApi/get_user_rules_test/should_work.yml +58 -0
  95. data/spec/spec_helper.rb +20 -5
  96. metadata +142 -46
@@ -18,22 +18,13 @@ require 'json'
18
18
  # Unit tests for ArtikCloud::MessagesApi
19
19
  # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
20
20
  # Please update as you see appropriate
21
- describe 'MessagesApi' do
22
- before do
23
- # run before each test
24
- configuration = ArtikCloud::Configuration.new
25
- configuration.access_token = 'dc43d12e2b59495daf94631e6ddfe3e8'
26
- api_client = ArtikCloud::ApiClient.new(configuration)
27
- @instance = ArtikCloud::MessagesApi.new(api_client)
28
- end
29
-
30
- after do
31
- # run after each test
32
- end
21
+ describe 'MessagesApi', :vcr do
22
+ let(:instance) { ArtikCloud::MessagesApi.new(API_CLIENT) }
23
+ let(:device) { FactoryGirl.create(:device1) }
33
24
 
34
25
  describe 'test an instance of MessagesApi' do
35
26
  it 'should create an instact of MessagesApi' do
36
- @instance.should be_a(ArtikCloud::MessagesApi)
27
+ expect(instance).to be_a(ArtikCloud::MessagesApi)
37
28
  end
38
29
  end
39
30
 
@@ -47,14 +38,14 @@ describe 'MessagesApi' do
47
38
  it "should work" do
48
39
  message = ArtikCloud::Message.new
49
40
  message.type = "message"
50
- message.sdid = "19da42ee01414722a6ad1224097c38d4"
41
+ message.sdid = device.id
51
42
  message.ts = Time.now.to_f*1000
52
- message.data = {
53
- :'steps' => 500
54
- }
43
+ message.data = {
44
+ :'steps' => 500
45
+ }
55
46
 
56
- result = @instance.send_message(message)
57
- result.should be_a(ArtikCloud::MessageIDEnvelope)
47
+ result = instance.send_message(message)
48
+ expect(result).to be_a(ArtikCloud::MessageIDEnvelope)
58
49
  message_id = result.data.mid
59
50
 
60
51
  sleep(2)
@@ -63,17 +54,68 @@ describe 'MessagesApi' do
63
54
  :mid => message_id
64
55
  }
65
56
 
66
- normalized_messages = @instance.get_normalized_messages(opts)
67
- normalized_messages.should be_a(ArtikCloud::NormalizedMessagesEnvelope)
68
- normalized_messages.size.should == 1
57
+ normalized_messages = instance.get_normalized_messages(opts)
58
+ expect(normalized_messages).to be_a(ArtikCloud::NormalizedMessagesEnvelope)
59
+ expect(normalized_messages.size).to eq 1
69
60
 
70
61
  normalized = normalized_messages.data[0]
71
- normalized.mid.should == message_id
62
+ expect(normalized.mid).to eq message_id
72
63
 
73
64
  volume = normalized.data["steps"]
74
- volume.should_not be_nil
75
- volume.should == 500
65
+ expect(volume).to_not be_nil
66
+ expect(volume).to eq 500
76
67
  end
77
68
  end
78
69
 
70
+ describe 'get_message_snapshots' do
71
+ it 'should work' do
72
+ result = instance.get_message_snapshots(device.id)
73
+ expect(result.sdids).to eq device.id
74
+ expect(result.data.first.sdid).to eq device.id
75
+ expect(result.data.first.data['steps'][:value]).to eq 500
76
+ end
77
+ end
78
+
79
+ describe 'send_actions' do
80
+ let(:device) { FactoryGirl.create(:device_tv) }
81
+
82
+ it 'should work' do
83
+ action = ArtikCloud::Action.new
84
+ action.name = 'setVolume'
85
+ action.parameters = {'volume' => 5}
86
+
87
+ action_array = ArtikCloud::ActionArray.new
88
+ action_array.actions = [action]
89
+
90
+ actions = ArtikCloud::Actions.new
91
+ actions.ddid = device.id
92
+ actions.ts = Time.now.to_f*1000
93
+ actions.data = action_array
94
+
95
+ mid = instance.send_actions(actions).data.mid
96
+
97
+ sleep(2)
98
+
99
+ result = instance.get_normalized_actions(
100
+ uid: nil,
101
+ ddid: nil,
102
+ mid: mid,
103
+ offset: nil,
104
+ count: nil,
105
+ startDate: nil,
106
+ endDate: nil,
107
+ order: nil
108
+ )
109
+ expect(result.size).to eq 1
110
+
111
+ normalized = result.data[0]
112
+ action_rx = normalized.data.actions[0]
113
+
114
+ expect(action_rx.name).to eq 'setVolume'
115
+
116
+ volume = action_rx.parameters['volume']
117
+ expect(volume).to_not be_nil
118
+ expect(volume).to eq 5
119
+ end
120
+ end
79
121
  end
@@ -18,53 +18,30 @@ require 'json'
18
18
  # Unit tests for ArtikCloud::TokensApi
19
19
  # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
20
20
  # Please update as you see appropriate
21
- describe 'TokensApi' do
22
- before do
23
- # run before each test
24
- @token = 'fa460261b858484583097ecb331faaa8'
25
- configuration = ArtikCloud::Configuration.new
26
- configuration.access_token = @token
27
- #configuration.base_url = 'https://accounts.artik.cloud'
28
- configuration.debugging = false
29
- api_client = ArtikCloud::ApiClient.new(configuration)
30
- @instance = ArtikCloud::TokensApi.new(api_client)
31
- end
32
-
33
- after do
34
- # run after each test
35
- end
21
+ describe 'TokensApi', :vcr do
22
+ let(:instance) { ArtikCloud::TokensApi.new(API_CLIENT) }
36
23
 
37
24
  describe 'test an instance of TokensApi' do
38
25
  it 'should create an instact of TokensApi' do
39
- #@instance.should be_a(ArtikCloud::TokensApi)
26
+ expect(instance).to be_a(ArtikCloud::TokensApi)
40
27
  end
41
28
  end
42
29
 
43
- # unit tests for tokenInfo
44
- # Token Info
45
- # @return [TokenInfoSuccessResponse]
46
30
  describe 'token_info test' do
47
31
  it "should work" do
48
- response = @instance.token_info()
49
- response.should be_a(ArtikCloud::TokenInfoSuccessResponse)
50
- # response.data.message.should == "Valid token"
32
+ response = instance.token_info
33
+ expect(response).to be_a(ArtikCloud::TokenInfoSuccessResponse)
34
+ expect(response.data.expires_in).to_not be_nil
51
35
  end
52
36
  end
53
37
 
54
- # unit tests for refresh_token
55
- # Refresh Token
56
- # Refresh Token
57
- # @param grant_type Grant Type.
58
- # @param refresh_token Refresh Token.
59
- # @param [Hash] opts the optional parameters
60
- # @return [RefreshTokenResponse]
61
38
  describe 'refresh_token test' do
62
39
  it "should work" do
63
- # refresh_token = "bb90333aee114b3e97284814d978080d"
40
+ pending 'refresh_token is invalid, a good one is needed'
41
+ refresh_token = "bb90333aee114b3e97284814d978080d"
64
42
 
65
- # response = @instance.refresh_token("refresh_token", refresh_token)
66
- # response.should be_a(ArtikCloud::RefreshTokenResponse)
43
+ response = instance.refresh_token("refresh_token", refresh_token)
44
+ response.should be_a(ArtikCloud::RefreshTokenResponse)
67
45
  end
68
46
  end
69
-
70
47
  end
@@ -16,19 +16,13 @@ require 'spec_helper'
16
16
  require 'json'
17
17
 
18
18
  # Unit tests for ArtikCloud::UsersApi
19
- describe 'UsersApi' do
20
- before do
21
- # run before each test
22
- @instance = ArtikCloud::UsersApi.new(API_CLIENT)
23
- end
24
-
25
- after do
26
- # run after each test
27
- end
19
+ describe 'UsersApi', :vcr do
20
+ let(:user){ FactoryGirl.create(:user) }
21
+ let(:instance) { ArtikCloud::UsersApi.new(API_CLIENT) }
28
22
 
29
23
  describe 'test an instance of UsersApi' do
30
24
  it 'should create an instact of UsersApi' do
31
- # @instance.should be_a(ArtikCloud::UsersApi)
25
+ expect(instance).to be_a(ArtikCloud::UsersApi)
32
26
  end
33
27
  end
34
28
 
@@ -39,12 +33,69 @@ describe 'UsersApi' do
39
33
  # @return [UserEnvelope]
40
34
  describe 'get_self test' do
41
35
  it "should work" do
42
- result = @instance.get_self
36
+ result = instance.get_self
37
+
38
+ expect(result).to be_a(ArtikCloud::UserEnvelope)
39
+ expect(result.data.email).to eq user.email
40
+ expect(result.data.id).to eq user.id
41
+ expect(result.data.name).to eq user.name
42
+ expect(result.data.full_name).to eq user.full_name
43
+ expect(result.data.created_on).to eq user.created_on
44
+ expect(result.data.modified_on).to_not be_nil
45
+ end
46
+ end
47
+
48
+ describe 'get_user_devices test' do
49
+ it "should work" do
50
+ result = instance.get_user_devices(user.id)
51
+ expect(result).to be_a(ArtikCloud::DevicesEnvelope)
52
+ expect(result.data.devices).to_not be_nil
53
+ end
54
+ end
55
+
56
+ describe 'get_user_device_types test' do
57
+ it "should work" do
58
+ result = instance.get_user_device_types(user.id)
59
+ expect(result).to be_a(ArtikCloud::DeviceTypesEnvelope)
60
+ expect(result.data.device_types).to_not be_nil
61
+ end
62
+ end
63
+
64
+ describe 'get_user_properties, update_user_properties, and delete_user_properties test' do
65
+ it "should work", :new_episodes do
66
+ # get_user_properties
43
67
 
44
- result.should be_a(ArtikCloud::UserEnvelope)
45
- result.data.name.should == "maneesh"
46
- result.data.full_name.should == "Maneesh Sahu"
68
+ begin
69
+ result = instance.get_user_properties(user.id, aid: user.aid)
70
+ rescue ArtikCloud::ApiError => exception
71
+ if exception.code == 404
72
+ app_properties = ArtikCloud::AppProperties.new
73
+ app_properties.properties = 'abc=def'
74
+ result = instance.create_user_properties(user.id, app_properties, aid: user.aid)
75
+ else
76
+ raise "Non-404 Error returned by API"
77
+ end
78
+ expect(result).to_not be_nil
79
+
80
+ # update_user_properties
81
+ app_properties_update = ArtikCloud::AppProperties.new
82
+ app_properties_update.properties = 'mno=pqr'
83
+ result_update = instance.update_user_properties(user.id, app_properties_update, aid: user.aid)
84
+ expect(result_update).to_not be_nil
85
+ expect(result_update.data.properties).to eq 'mno=pqr'
86
+
87
+ # delete_user_properties
88
+ result_delete = instance.delete_user_properties(user.id, aid: user.aid)
89
+ expect(result_delete).to_not be_nil
90
+ expect(result_delete).to eq result_update
91
+ end
47
92
  end
48
93
  end
49
94
 
95
+ describe 'get_user_rules test' do
96
+ it "should work" do
97
+ result = instance.get_user_rules(user.id)
98
+ expect(result).to_not be_nil
99
+ end
100
+ end
50
101
  end
@@ -0,0 +1,237 @@
1
+ =begin
2
+ #ARTIK Cloud API
3
+
4
+ #No descripton provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 2.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
21
+
22
+ =end
23
+
24
+ require 'spec_helper'
25
+
26
+ describe ArtikCloud::ApiClient do
27
+ context 'initialization' do
28
+ context 'URL stuff' do
29
+ context 'host' do
30
+ it 'removes http from host' do
31
+ ArtikCloud.configure { |c| c.host = 'http://example.com' }
32
+ expect(ArtikCloud::Configuration.default.host).to eq('example.com')
33
+ end
34
+
35
+ it 'removes https from host' do
36
+ ArtikCloud.configure { |c| c.host = 'https://wookiee.com' }
37
+ expect(ArtikCloud::ApiClient.default.config.host).to eq('wookiee.com')
38
+ end
39
+
40
+ it 'removes trailing path from host' do
41
+ ArtikCloud.configure { |c| c.host = 'hobo.com/v4' }
42
+ expect(ArtikCloud::Configuration.default.host).to eq('hobo.com')
43
+ end
44
+ end
45
+
46
+ context 'base_path' do
47
+ it "prepends a slash to base_path" do
48
+ ArtikCloud.configure { |c| c.base_path = 'v4/dog' }
49
+ expect(ArtikCloud::Configuration.default.base_path).to eq('/v4/dog')
50
+ end
51
+
52
+ it "doesn't prepend a slash if one is already there" do
53
+ ArtikCloud.configure { |c| c.base_path = '/v4/dog' }
54
+ expect(ArtikCloud::Configuration.default.base_path).to eq('/v4/dog')
55
+ end
56
+
57
+ it "ends up as a blank string if nil" do
58
+ ArtikCloud.configure { |c| c.base_path = nil }
59
+ expect(ArtikCloud::Configuration.default.base_path).to eq('')
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ describe "params_encoding in #build_request" do
66
+ let(:config) { ArtikCloud::Configuration.new }
67
+ let(:api_client) { ArtikCloud::ApiClient.new(config) }
68
+
69
+ it "defaults to nil" do
70
+ expect(ArtikCloud::Configuration.default.params_encoding).to eq(nil)
71
+ expect(config.params_encoding).to eq(nil)
72
+
73
+ request = api_client.build_request(:get, '/test')
74
+ expect(request.options[:params_encoding]).to eq(nil)
75
+ end
76
+
77
+ it "can be customized" do
78
+ config.params_encoding = :multi
79
+ request = api_client.build_request(:get, '/test')
80
+ expect(request.options[:params_encoding]).to eq(:multi)
81
+ end
82
+ end
83
+
84
+ describe "timeout in #build_request" do
85
+ let(:config) { ArtikCloud::Configuration.new }
86
+ let(:api_client) { ArtikCloud::ApiClient.new(config) }
87
+
88
+ it "defaults to 0" do
89
+ expect(ArtikCloud::Configuration.default.timeout).to eq(0)
90
+ expect(config.timeout).to eq(0)
91
+
92
+ request = api_client.build_request(:get, '/test')
93
+ expect(request.options[:timeout]).to eq(0)
94
+ end
95
+
96
+ it "can be customized" do
97
+ config.timeout = 100
98
+ request = api_client.build_request(:get, '/test')
99
+ expect(request.options[:timeout]).to eq(100)
100
+ end
101
+ end
102
+
103
+ describe "#deserialize" do
104
+ it "handles Array<Integer>" do
105
+ api_client = ArtikCloud::ApiClient.new
106
+ headers = {'Content-Type' => 'application/json'}
107
+ response = double('response', headers: headers, body: '[12, 34]')
108
+ data = api_client.deserialize(response, 'Array<Integer>')
109
+ expect(data).to be_instance_of(Array)
110
+ expect(data).to eq([12, 34])
111
+ end
112
+
113
+ it "handles Array<Array<Integer>>" do
114
+ api_client = ArtikCloud::ApiClient.new
115
+ headers = {'Content-Type' => 'application/json'}
116
+ response = double('response', headers: headers, body: '[[12, 34], [56]]')
117
+ data = api_client.deserialize(response, 'Array<Array<Integer>>')
118
+ expect(data).to be_instance_of(Array)
119
+ expect(data).to eq([[12, 34], [56]])
120
+ end
121
+
122
+ it "handles Hash<String, String>" do
123
+ api_client = ArtikCloud::ApiClient.new
124
+ headers = {'Content-Type' => 'application/json'}
125
+ response = double('response', headers: headers, body: '{"message": "Hello"}')
126
+ data = api_client.deserialize(response, 'Hash<String, String>')
127
+ expect(data).to be_instance_of(Hash)
128
+ expect(data).to eq({:message => 'Hello'})
129
+ end
130
+ end
131
+
132
+ describe "#object_to_hash" do
133
+ it "ignores nils and includes empty arrays" do
134
+ # uncomment below to test object_to_hash for model
135
+ #api_client = ArtikCloud::ApiClient.new
136
+ #_model = ArtikCloud::ModelName.new
137
+ # update the model attribute below
138
+ #_model.id = 1
139
+ # update the expected value (hash) below
140
+ #expected = {id: 1, name: '', tags: []}
141
+ #expect(api_client.object_to_hash(_model)).to eq(expected)
142
+ end
143
+ end
144
+
145
+ describe "#build_collection_param" do
146
+ let(:param) { ['aa', 'bb', 'cc'] }
147
+ let(:api_client) { ArtikCloud::ApiClient.new }
148
+
149
+ it "works for csv" do
150
+ expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
151
+ end
152
+
153
+ it "works for ssv" do
154
+ expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
155
+ end
156
+
157
+ it "works for tsv" do
158
+ expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
159
+ end
160
+
161
+ it "works for pipes" do
162
+ expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
163
+ end
164
+
165
+ it "works for multi" do
166
+ expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
167
+ end
168
+
169
+ it "fails for invalid collection format" do
170
+ expect(proc { api_client.build_collection_param(param, :INVALID) }).to raise_error(RuntimeError, 'unknown collection format: :INVALID')
171
+ end
172
+ end
173
+
174
+ describe "#json_mime?" do
175
+ let(:api_client) { ArtikCloud::ApiClient.new }
176
+
177
+ it "works" do
178
+ expect(api_client.json_mime?(nil)).to eq false
179
+ expect(api_client.json_mime?('')).to eq false
180
+
181
+ expect(api_client.json_mime?('application/json')).to eq true
182
+ expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
183
+ expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
184
+
185
+ expect(api_client.json_mime?('application/xml')).to eq false
186
+ expect(api_client.json_mime?('text/plain')).to eq false
187
+ expect(api_client.json_mime?('application/jsonp')).to eq false
188
+ end
189
+ end
190
+
191
+ describe "#select_header_accept" do
192
+ let(:api_client) { ArtikCloud::ApiClient.new }
193
+
194
+ it "works" do
195
+ expect(api_client.select_header_accept(nil)).to be_nil
196
+ expect(api_client.select_header_accept([])).to be_nil
197
+
198
+ expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
199
+ expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
200
+ expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
201
+
202
+ expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
203
+ expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml')
204
+ end
205
+ end
206
+
207
+ describe "#select_header_content_type" do
208
+ let(:api_client) { ArtikCloud::ApiClient.new }
209
+
210
+ it "works" do
211
+ expect(api_client.select_header_content_type(nil)).to eq('application/json')
212
+ expect(api_client.select_header_content_type([])).to eq('application/json')
213
+
214
+ expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
215
+ expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
216
+ expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
217
+ expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
218
+ expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
219
+ end
220
+ end
221
+
222
+ describe "#sanitize_filename" do
223
+ let(:api_client) { ArtikCloud::ApiClient.new }
224
+
225
+ it "works" do
226
+ expect(api_client.sanitize_filename('sun')).to eq('sun')
227
+ expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
228
+ expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
229
+ expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
230
+ expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
231
+ expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
232
+ expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
233
+ expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
234
+ expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,53 @@
1
+ =begin
2
+ #ARTIK Cloud API
3
+
4
+ #No descripton provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 2.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
21
+
22
+ =end
23
+
24
+ require 'spec_helper'
25
+
26
+ describe ArtikCloud::Configuration do
27
+ let(:config) { ArtikCloud::Configuration.default }
28
+
29
+ before(:each) do
30
+ # uncomment below to setup host and base_path
31
+ #require 'URI'
32
+ #uri = URI.parse("https://api.artik.cloud/v1.1")
33
+ #ArtikCloud.configure do |c|
34
+ # c.host = uri.host
35
+ # c.base_path = uri.path
36
+ #end
37
+ end
38
+
39
+ describe '#base_url' do
40
+ it 'should have the default value' do
41
+ # uncomment below to test default value of the base path
42
+ #expect(config.base_url).to eq("https://api.artik.cloud/v1.1")
43
+ end
44
+
45
+ it 'should remove trailing slashes' do
46
+ [nil, '', '/', '//'].each do |base_path|
47
+ config.base_path = base_path
48
+ # uncomment below to test trailing slashes
49
+ #expect(config.base_url).to eq("https://api.artik.cloud/v1.1")
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ require 'ostruct'
2
+
3
+ FactoryGirl.define do
4
+ skip_create
5
+ factory :device1, class: OpenStruct do
6
+ id '19da42ee01414722a6ad1224097c38d4'
7
+ token 'dc43d12e2b59495daf94631e6ddfe3e8'
8
+
9
+ initialize_with { new(attributes) }
10
+ end
11
+
12
+ factory :device2, class: OpenStruct do
13
+ id '16f54be9b9ce4c69be14a6c8ff33ea8d'
14
+ token 'f9f75bd0b0fc46a9a604703909f4331d'
15
+
16
+ initialize_with { new(attributes) }
17
+ end
18
+
19
+ factory :device3, class: OpenStruct do
20
+ id '3dd34bce025a4409ac1ff80be81b8dbc'
21
+ token '49db2612c46342458b61af535921bdca'
22
+
23
+ initialize_with { new(attributes) }
24
+ end
25
+
26
+ factory :device_tv, class: OpenStruct do
27
+ id '5c97745b1e7a4beb96edd583ad595884'
28
+ token '56482b3f3ca948d3bc8769a003bfeb7f'
29
+
30
+ initialize_with { new(attributes) }
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ require 'ostruct'
2
+
3
+ FactoryGirl.define do
4
+ skip_create
5
+ factory :user, class: OpenStruct do
6
+ id "04ddbd35d57d4d7b8f07f219c44457b2"
7
+ aid "b6951bf387b84f63b38911ae35d65e28"
8
+ name "maneesh"
9
+ email "maneesh.sahu@ssi.samsung.com"
10
+ full_name "Maneesh Sahu"
11
+ sa_identity "kqil5l7kgb"
12
+ account_type "SAMSUNG"
13
+ created_on 1406839290000
14
+ modified_on 1413483926000
15
+
16
+ initialize_with { new(attributes) }
17
+ end
18
+
19
+ factory :artik_user, class: ArtikCloud::User do
20
+ id "04ddbd35d57d4d7b8f07f219c44457b2"
21
+ name "maneesh"
22
+ email "maneesh.sahu@ssi.samsung.com"
23
+ fullName "Maneesh Sahu"
24
+ saIdentity "kqil5l7kgb"
25
+ accountType "SAMSUNG"
26
+ createdOn 1406839290000
27
+ modifiedOn 1413483926000
28
+
29
+ initialize_with { new(attributes) }
30
+ end
31
+ end
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.artik.cloud/v1.1/devices/19da42ee01414722a6ad1224097c38d4/presence
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Swagger-Codegen/2.0.5/ruby
12
+ Content-Type:
13
+ - application/json
14
+ Accept:
15
+ - application/json
16
+ Authorization:
17
+ - Bearer fa460261b858484583097ecb331faaa8
18
+ Expect:
19
+ - ''
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ X-Rate-Limit-Limit:
28
+ - 100/1000
29
+ X-Rate-Limit-Reset:
30
+ - 1472795198/1472860800
31
+ X-Rate-Limit-Remaining:
32
+ - 99/999
33
+ Access-Control-Allow-Origin:
34
+ - "*"
35
+ Access-Control-Allow-Headers:
36
+ - Origin, X-Requested-With, Content-Type, Accept, Referer, User-Agent, Authorization
37
+ Access-Control-Allow-Methods:
38
+ - POST, GET, PUT, DELETE, OPTIONS
39
+ Date:
40
+ - Fri, 02 Sep 2016 05:45:38 GMT
41
+ Content-Length:
42
+ - '97'
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"sdid":"19da42ee01414722a6ad1224097c38d4","data":{"lastSeenOn":1472795114293,"connected":false}}'
48
+ http_version:
49
+ recorded_at: Fri, 02 Sep 2016 05:45:38 GMT
50
+ recorded_with: VCR 3.0.3