esp_sdk 1.1.0 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/.rubocop.yml +53 -6
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +8 -2
  6. data/Gemfile.lock +171 -0
  7. data/Guardfile +47 -0
  8. data/README.md +230 -5
  9. data/Rakefile +14 -1
  10. data/assets/logo.png +0 -0
  11. data/bin/esp_console +71 -0
  12. data/esp_sdk.gemspec +27 -18
  13. data/lib/esp/exceptions.rb +3 -0
  14. data/lib/esp/extensions/active_resource/formats/json_api_format.rb +105 -0
  15. data/lib/esp/extensions/active_resource/paginated_collection.rb +198 -0
  16. data/lib/esp/extensions/active_resource/validations.rb +45 -0
  17. data/lib/esp/resources/alert.rb +135 -0
  18. data/lib/esp/resources/cloud_trail_event.rb +45 -0
  19. data/lib/esp/resources/concerns/stat_totals.rb +79 -0
  20. data/lib/esp/resources/contact_request.rb +42 -0
  21. data/lib/esp/resources/custom_signature.rb +224 -0
  22. data/lib/esp/resources/dashboard.rb +31 -0
  23. data/lib/esp/resources/external_account.rb +89 -0
  24. data/lib/esp/resources/organization.rb +61 -0
  25. data/lib/esp/resources/region.rb +46 -0
  26. data/lib/esp/resources/report.rb +100 -0
  27. data/lib/esp/resources/resource.rb +66 -0
  28. data/lib/esp/resources/service.rb +31 -0
  29. data/lib/esp/resources/signature.rb +106 -0
  30. data/lib/esp/resources/stat.rb +124 -0
  31. data/lib/esp/resources/stat_custom_signature.rb +121 -0
  32. data/lib/esp/resources/stat_region.rb +121 -0
  33. data/lib/esp/resources/stat_service.rb +121 -0
  34. data/lib/esp/resources/stat_signature.rb +121 -0
  35. data/lib/esp/resources/sub_organization.rb +69 -0
  36. data/lib/esp/resources/suppression/region.rb +99 -0
  37. data/lib/esp/resources/suppression/signature.rb +107 -0
  38. data/lib/esp/resources/suppression/unique_identifier.rb +60 -0
  39. data/lib/esp/resources/suppression.rb +86 -0
  40. data/lib/esp/resources/tag.rb +45 -0
  41. data/lib/esp/resources/team.rb +79 -0
  42. data/lib/esp/resources/user.rb +46 -0
  43. data/lib/esp/version.rb +3 -0
  44. data/lib/esp.rb +95 -0
  45. data/lib/esp_sdk.rb +9 -45
  46. data/lib/tasks/rubocop.rake +2 -0
  47. data/lib/tasks/testing.rake +3 -0
  48. data/rdoc/ActiveResource/Formats.html +176 -0
  49. data/rdoc/ActiveResource/PaginatedCollection.html +910 -0
  50. data/rdoc/ActiveResource.html +180 -0
  51. data/rdoc/ESP/Alert.html +771 -0
  52. data/rdoc/ESP/CloudTrailEvent.html +375 -0
  53. data/rdoc/ESP/ContactRequest.html +366 -0
  54. data/rdoc/ESP/CustomSignature.html +746 -0
  55. data/rdoc/ESP/Dashboard.html +355 -0
  56. data/rdoc/ESP/ExternalAccount.html +565 -0
  57. data/rdoc/ESP/Organization.html +590 -0
  58. data/rdoc/ESP/Region.html +399 -0
  59. data/rdoc/ESP/Report.html +622 -0
  60. data/rdoc/ESP/Service.html +380 -0
  61. data/rdoc/ESP/Signature.html +555 -0
  62. data/rdoc/ESP/Stat.html +1778 -0
  63. data/rdoc/ESP/StatCustomSignature.html +1599 -0
  64. data/rdoc/ESP/StatRegion.html +1598 -0
  65. data/rdoc/ESP/StatService.html +1598 -0
  66. data/rdoc/ESP/StatSignature.html +1598 -0
  67. data/rdoc/ESP/SubOrganization.html +540 -0
  68. data/rdoc/ESP/Suppression/Region.html +454 -0
  69. data/rdoc/ESP/Suppression/Signature.html +470 -0
  70. data/rdoc/ESP/Suppression/UniqueIdentifier.html +417 -0
  71. data/rdoc/ESP/Suppression.html +649 -0
  72. data/rdoc/ESP/Tag.html +371 -0
  73. data/rdoc/ESP/Team.html +584 -0
  74. data/rdoc/ESP/User.html +483 -0
  75. data/rdoc/ESP.html +546 -0
  76. data/rdoc/README_md.html +501 -0
  77. data/rdoc/created.rid +30 -0
  78. data/rdoc/images/add.png +0 -0
  79. data/rdoc/images/arrow_up.png +0 -0
  80. data/rdoc/images/brick.png +0 -0
  81. data/rdoc/images/brick_link.png +0 -0
  82. data/rdoc/images/bug.png +0 -0
  83. data/rdoc/images/bullet_black.png +0 -0
  84. data/rdoc/images/bullet_toggle_minus.png +0 -0
  85. data/rdoc/images/bullet_toggle_plus.png +0 -0
  86. data/rdoc/images/date.png +0 -0
  87. data/rdoc/images/delete.png +0 -0
  88. data/rdoc/images/find.png +0 -0
  89. data/rdoc/images/loadingAnimation.gif +0 -0
  90. data/rdoc/images/macFFBgHack.png +0 -0
  91. data/rdoc/images/package.png +0 -0
  92. data/rdoc/images/page_green.png +0 -0
  93. data/rdoc/images/page_white_text.png +0 -0
  94. data/rdoc/images/page_white_width.png +0 -0
  95. data/rdoc/images/plugin.png +0 -0
  96. data/rdoc/images/ruby.png +0 -0
  97. data/rdoc/images/tag_blue.png +0 -0
  98. data/rdoc/images/tag_green.png +0 -0
  99. data/rdoc/images/transparent.png +0 -0
  100. data/rdoc/images/wrench.png +0 -0
  101. data/rdoc/images/wrench_orange.png +0 -0
  102. data/rdoc/images/zoom.png +0 -0
  103. data/rdoc/index.html +134 -0
  104. data/rdoc/js/darkfish.js +155 -0
  105. data/rdoc/js/jquery.js +4 -0
  106. data/rdoc/js/navigation.js +142 -0
  107. data/rdoc/js/search.js +94 -0
  108. data/rdoc/js/search_index.js +1 -0
  109. data/rdoc/js/searcher.js +228 -0
  110. data/rdoc/rdoc.css +595 -0
  111. data/rdoc/table_of_contents.html +927 -0
  112. data/test/esp/extensions/active_resource/formats/json_api_format_test.rb +109 -0
  113. data/test/esp/extensions/active_resource/paginated_collection_test.rb +435 -0
  114. data/test/esp/extensions/active_resource/validations_test.rb +59 -0
  115. data/test/esp/resources/alert_test.rb +263 -0
  116. data/test/esp/resources/cloud_trail_event_test.rb +98 -0
  117. data/test/esp/resources/contact_request_test.rb +73 -0
  118. data/test/esp/resources/custom_signature_test.rb +241 -0
  119. data/test/esp/resources/dashboard_test.rb +71 -0
  120. data/test/esp/resources/external_account_test.rb +125 -0
  121. data/test/esp/resources/organization_test.rb +175 -0
  122. data/test/esp/resources/region_test.rb +84 -0
  123. data/test/esp/resources/report_test.rb +180 -0
  124. data/test/esp/resources/resource_test.rb +183 -0
  125. data/test/esp/resources/service_test.rb +64 -0
  126. data/test/esp/resources/signature_test.rb +177 -0
  127. data/test/esp/resources/stat_custom_signature_test.rb +115 -0
  128. data/test/esp/resources/stat_region_test.rb +114 -0
  129. data/test/esp/resources/stat_service_test.rb +114 -0
  130. data/test/esp/resources/stat_signature_test.rb +115 -0
  131. data/test/esp/resources/stat_test.rb +159 -0
  132. data/test/esp/resources/sub_organization_test.rb +127 -0
  133. data/test/esp/resources/suppression/region_test.rb +115 -0
  134. data/test/esp/resources/suppression/signature_test.rb +117 -0
  135. data/test/esp/resources/suppression/unique_identifier_test.rb +79 -0
  136. data/test/esp/resources/suppression_test.rb +226 -0
  137. data/test/esp/resources/tag_test.rb +98 -0
  138. data/test/esp/resources/team_test.rb +140 -0
  139. data/test/esp/resources/user_test.rb +113 -0
  140. data/test/esp_test.rb +139 -0
  141. data/test/factories/alerts.rb +234 -0
  142. data/test/factories/cloud_trail_events.rb +16 -0
  143. data/test/factories/contact_requests.rb +14 -0
  144. data/test/factories/custom_signatures.rb +30 -0
  145. data/test/factories/dashboards.rb +91 -0
  146. data/test/factories/errors.rb +24 -0
  147. data/test/factories/external_accounts.rb +44 -0
  148. data/test/factories/organizations.rb +48 -0
  149. data/test/factories/regions.rb +9 -0
  150. data/test/factories/reports.rb +56 -0
  151. data/test/factories/services.rb +12 -0
  152. data/test/factories/signatures.rb +28 -0
  153. data/test/factories/stat_custom_signatures.rb +97 -0
  154. data/test/factories/stat_regions.rb +97 -0
  155. data/test/factories/stat_services.rb +97 -0
  156. data/test/factories/stat_signautures.rb +97 -0
  157. data/test/factories/stats.rb +129 -0
  158. data/test/factories/sub_organizations.rb +34 -0
  159. data/test/factories/suppression/regions.rb +90 -0
  160. data/test/factories/suppression/signatures.rb +117 -0
  161. data/test/factories/suppression/unique_identifiers.rb +111 -0
  162. data/test/factories/suppressions.rb +71 -0
  163. data/test/factories/tags.rb +12 -0
  164. data/test/factories/teams.rb +32 -0
  165. data/test/factories/users.rb +54 -0
  166. data/test/json_strategy.rb +25 -0
  167. data/test/test_helper.rb +44 -5
  168. metadata +387 -119
  169. data/bin/esp_repl +0 -60
  170. data/lib/esp_sdk/api.rb +0 -33
  171. data/lib/esp_sdk/client.rb +0 -62
  172. data/lib/esp_sdk/configure.rb +0 -40
  173. data/lib/esp_sdk/end_points/base.rb +0 -102
  174. data/lib/esp_sdk/end_points/contact_requests.rb +0 -6
  175. data/lib/esp_sdk/end_points/custom_signatures.rb +0 -41
  176. data/lib/esp_sdk/end_points/dashboard.rb +0 -35
  177. data/lib/esp_sdk/end_points/external_accounts.rb +0 -9
  178. data/lib/esp_sdk/end_points/organizations.rb +0 -6
  179. data/lib/esp_sdk/end_points/reports.rb +0 -6
  180. data/lib/esp_sdk/end_points/services.rb +0 -6
  181. data/lib/esp_sdk/end_points/signatures.rb +0 -39
  182. data/lib/esp_sdk/end_points/sub_organizations.rb +0 -6
  183. data/lib/esp_sdk/end_points/teams.rb +0 -6
  184. data/lib/esp_sdk/end_points/users.rb +0 -6
  185. data/lib/esp_sdk/exceptions.rb +0 -8
  186. data/lib/esp_sdk/extensions/rest_client/request.rb +0 -9
  187. data/lib/esp_sdk/repl.rb +0 -61
  188. data/lib/esp_sdk/version.rb +0 -3
  189. data/test/esp_sdk/api_test.rb +0 -36
  190. data/test/esp_sdk/client_test.rb +0 -129
  191. data/test/esp_sdk/configure_test.rb +0 -65
  192. data/test/esp_sdk/end_points/.keep +0 -0
  193. data/test/esp_sdk/end_points/base_test.rb +0 -230
  194. data/test/esp_sdk/end_points/custom_signatures_test.rb +0 -90
  195. data/test/esp_sdk/end_points/dashboard_test.rb +0 -55
  196. data/test/esp_sdk/end_points/external_accounts_test.rb +0 -20
  197. data/test/esp_sdk/end_points/signatures_test.rb +0 -83
  198. data/test/esp_sdk/exceptions_test.rb +0 -41
  199. data/test/esp_sdk_test.rb +0 -70
@@ -1,129 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
-
3
- class ClientTest < ActiveSupport::TestCase
4
- context 'Client' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @config.token = '1234abc'
10
- @client = EspSdk::Client.new(@config)
11
- end
12
-
13
- context '#initalize' do
14
- # Sanity check really.
15
- should 'set the config on the client' do
16
- assert @client.config.is_a?(EspSdk::Configure)
17
- assert_equal 'test@evident.io', @client.config.email
18
- assert_equal '1234abc', @client.config.token
19
- end
20
- end
21
-
22
- context '#connect' do
23
- setup { @url = 'https://esp.evident.io/api/v1/test' }
24
-
25
- should 'raise an unauthorized error' do
26
- RestClient.expects(:get).raises(RestClient::Unauthorized)
27
- exception = assert_raises EspSdk::Unauthorized do
28
- @client.connect(@url, :get)
29
- end
30
-
31
- assert_equal 'Unauthorized request', exception.message
32
- end
33
-
34
- [:get, :delete].each do |type|
35
- should "make #{type} request with headers only" do
36
- # Make sure the correct RestClient method is called and arguments are passed
37
- RestClient.expects(type).with(@url, @client.send(:headers))
38
- @client.connect(@url, type)
39
- end
40
-
41
- should "make #{type} request with headers and payload" do
42
- payload = { id: 1 }
43
- # Make sure the correct RestClient method is called and arguments are passed
44
- RestClient.expects(type).with(@url, @client.send(:headers).merge(params: { @client.send(:payload_key) => payload }))
45
- @client.connect(@url, type, payload)
46
- end
47
- end
48
-
49
- [:post, :patch, :put].each do |type|
50
- should "raise MissingAttribute exception for an empty payload from request type #{type}" do
51
- e = assert_raises EspSdk::MissingAttribute do
52
- @client.connect(@url, type)
53
- end
54
-
55
- assert_equal 'Missing required attributes', e.message
56
- end
57
-
58
- should "make #{type} request with headers and payload" do
59
- payload = { id: 1 }
60
- # Make sure the correct RestClient method is called and arguments are passed
61
- RestClient.expects(type).with(@url, { @client.send(:payload_key) => payload }, @client.send(:headers))
62
- @client.connect(@url, type, payload)
63
- end
64
- end
65
- end
66
-
67
- context '#headers' do
68
- should 'have the correct keys and values' do
69
- headers = @client.send(:headers)
70
- # Assert the correct keys are present
71
- assert headers.is_a?(Hash)
72
- assert headers.key?('Authorization')
73
- assert headers.key?('Authorization-Email')
74
- assert headers.key?('Content-Type')
75
- assert headers.key?('Accept')
76
-
77
- # Assert the correct values are present
78
- assert_equal @config.token, headers['Authorization']
79
- assert_equal @config.email, headers['Authorization-Email']
80
- assert_equal 'application/json', headers['Content-Type']
81
- assert_equal 'application/json', headers['Accept']
82
- end
83
- end
84
-
85
- context '#payload_key' do
86
- should 'create the correct payload key' do
87
- # Check this through and endpoint class.
88
- # Should take the class name and turn it into a valid key the api understands
89
- external_account = EspSdk::EndPoints::ExternalAccounts.new(@config)
90
- assert_equal 'external_account', external_account.send(:payload_key)
91
- end
92
- end
93
-
94
- context '#check_errors' do
95
- should 'return nil when errors are blank' do
96
- assert_nil @client.send(:check_errors, {})
97
- end
98
-
99
- should 'return nil when errors is not a hash' do
100
- assert_nil @client.send(:check_errors, [1])
101
- end
102
-
103
- should 'return nil when errors is missing the errors key' do
104
- assert_nil @client.send(:check_errors, { test: 1 })
105
- end
106
-
107
- should 'raise TokenExpired exception when a token has expired error is present' do
108
- e = assert_raises EspSdk::TokenExpired do
109
- @client.send(:check_errors, { 'errors' => ['Token has expired'] })
110
- end
111
- assert_equal 'Token has expired', e.message
112
- end
113
-
114
- should 'raise TokenExpired exception when a record has not been found' do
115
- e = assert_raises EspSdk::RecordNotFound do
116
- @client.send(:check_errors, { 'errors' => ['Record not found'] })
117
- end
118
- assert_equal 'Record not found', e.message
119
- end
120
-
121
- should 'join the return errors into a EspSdk::Exception' do
122
- e = assert_raises EspSdk::Exception do
123
- @client.send(:check_errors, { 'errors' => ['ARN is blank', 'External ID is blank'] })
124
- end
125
- assert_equal 'ARN is blank. External ID is blank', e.message
126
- end
127
- end
128
- end
129
- end
@@ -1,65 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
-
3
- class ConfigureTest < ActiveSupport::TestCase
4
- context 'Configure' do
5
- setup do
6
- # Stub the setup token method
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@test.com', token: 'token')
9
- end
10
-
11
- context '#initialize' do
12
- should 'set a default version of v1' do
13
- assert_equal 'v1', @config.version
14
- end
15
-
16
- should 'should setup the token and token and expires at' do
17
- EspSdk::Configure.any_instance.unstub(:token_setup)
18
- FakeWeb.register_uri(:get, %r{api/v1/token/new},
19
- body: { authentication_token: 'token',
20
- token_expires_at: 1.hour.from_now }.to_json)
21
-
22
- config = EspSdk::Configure.new(email: 'test@test.com', password: 'password1234')
23
-
24
- assert_not_nil config.token
25
- assert_not_nil config.token_expires_at
26
- end
27
- end
28
-
29
- context 'url' do
30
- should 'return domain with api/version/end_point' do
31
- @config = EspSdk::Configure.new(email: 'test@test.com', token: 'token', domain: 'https://test.domain.com', version: 'v4')
32
-
33
- assert_equal 'https://test.domain.com/api/v4/users', @config.url('users')
34
- end
35
- end
36
-
37
- context '#domain' do
38
- should 'return custom URI when the URI is passed in' do
39
- @config = EspSdk::Configure.new(email: 'test@test.com', token: 'token', domain: 'https://test.domain.com')
40
-
41
- assert_equal 'https://test.domain.com', @config.domain
42
- end
43
-
44
- should 'return the production URI when the environment is production' do
45
- EspSdk.expects(:production?).returns(true)
46
-
47
- assert_equal 'https://api.evident.io', @config.domain
48
- end
49
-
50
- should 'return the release URI when the environment is release' do
51
- EspSdk.expects(:production?).returns(false)
52
- EspSdk.expects(:release?).returns(true)
53
-
54
- assert_equal 'https://api-rel.evident.io', @config.domain
55
- end
56
-
57
- should 'return the development URI when the environment is not release or production' do
58
- EspSdk.expects(:production?).returns(false)
59
- EspSdk.expects(:release?).returns(false)
60
-
61
- assert_equal 'http://0.0.0.0:3000', @config.domain
62
- end
63
- end
64
- end
65
- end
File without changes
@@ -1,230 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
-
3
- class BaseTest < ActiveSupport::TestCase
4
- context 'Base' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @base = EspSdk::EndPoints::Base.new(@config)
10
- end
11
-
12
- context '#next_page' do
13
- should 'call list if @current_page is blank' do
14
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
15
- @base.expects(:list)
16
-
17
- @base.next_page
18
- end
19
-
20
- should "return the current page if @page_links['links']' are blank" do
21
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
22
- @base.expects(:current_page)
23
-
24
- @base.next_page
25
- end
26
-
27
- should 'request next page and set current_page' do
28
- FakeWeb.register_uri(:get, 'http://0.0.0.0:3000/api/v1/base',
29
- :body => [{ stub: 'page1' }].to_json,
30
- :link => %(<http://0.0.0.0:3000/api/v1/base?page=5>; rel="last", <http://0.0.0.0:3000/api/v1/base?page=2>; rel="next"))
31
- FakeWeb.register_uri(:get, 'http://0.0.0.0:3000/api/v1/base?page=2',
32
- :body => [{ stub: 'page2' }].to_json)
33
-
34
- @base = EspSdk::EndPoints::Base.new(@config)
35
- @base.list
36
- @base.next_page
37
-
38
- assert_equal 'page2', @base.current_page.first[:stub]
39
- end
40
- end
41
-
42
- context '#prev_page' do
43
- setup do
44
- FakeWeb.register_uri(:get, %r{api/v1/base},
45
- :body => [{ stub: 'Stub' }].to_json)
46
- end
47
-
48
- should 'call list if @current_page is blank' do
49
- @base.expects(:list)
50
- @base.prev_page
51
- end
52
-
53
- should "return the current page if @page_links['links']' are blank" do
54
- @base.expects(:current_page)
55
- @base.prev_page
56
- end
57
- end
58
-
59
- context '#list' do
60
- should 'set the current page and setup link pagination' do
61
- FakeWeb.register_uri(:get, %r{api/v1/base},
62
- :body => [{ stub: 'Stub' }].to_json)
63
- @base.expects(:pagination_links)
64
-
65
- response = @base.list
66
-
67
- assert response.first.key?('stub')
68
- assert_equal response, @base.current_page
69
- end
70
- end
71
-
72
- context '#show' do
73
- should 'call validate id and return the stub response, and set the current_record' do
74
- FakeWeb.register_uri(:get, %r{api/v1/base/1},
75
- :body => { stub: 'Stub' }.to_json)
76
- payload = { id: 1 }
77
-
78
- @base.expects(:validate_id).with(payload)
79
-
80
- response = @base.show(payload)
81
- assert response.key?('stub')
82
- assert_equal response, @base.current_record
83
- end
84
- end
85
-
86
- context '#update' do
87
- should 'call validate id and return the stub response, and set the current_record' do
88
- FakeWeb.register_uri(:get, %r{api/v1/base/1},
89
- :body => { stub: 'Stub' }.to_json)
90
- payload = { id: 1, name: 'Test' }
91
-
92
- @base.expects(:validate_id).with(payload)
93
-
94
- response = @base.show(payload)
95
- assert response.key?('stub')
96
- assert_equal response, @base.current_record
97
- end
98
- end
99
-
100
- context '#destroy' do
101
- should 'call validate id and return the stub response, and set the current_record' do
102
- FakeWeb.register_uri(:get, /api\/v1\/base\/1/,
103
- :body => { success: 'Stub has been destroyed' }.to_json)
104
- payload = { id: 1 }
105
-
106
- @base.expects(:validate_id).with(payload)
107
-
108
- response = @base.show(payload)
109
- assert response.key?('success')
110
- assert_equal response, @base.current_record
111
- end
112
- end
113
-
114
- context '#validate_id' do
115
- should 'return nil when an ID is present' do
116
- assert_nil @base.send(:validate_id, { id: 1 })
117
- end
118
-
119
- should 'raise EspSdk::MissingAttribute for a missing id' do
120
- e = assert_raises EspSdk::MissingAttribute do
121
- @base.send(:validate_id, {})
122
- end
123
-
124
- assert_equal 'Missing required attribute id', e.message
125
- end
126
- end
127
-
128
- context '#id_url' do
129
- should 'return a valid id url for the test environment' do
130
- # Test through a different endpoint to get a valid URL
131
- EspSdk.instance_variable_set(:@env, :development)
132
- external_account = EspSdk::EndPoints::ExternalAccounts.new(@config)
133
- assert_equal 'http://0.0.0.0:3000/api/v1/external_accounts/1', external_account.send(:id_url, 1)
134
- end
135
-
136
- should 'return a valid id url for the release environment' do
137
- EspSdk.instance_variable_set(:@env, :release)
138
- config = EspSdk::Configure.new(email: 'test@evident.io')
139
- # Test through a different endpoint to get a valid URL
140
- external_account = EspSdk::EndPoints::ExternalAccounts.new(config)
141
- assert_equal 'https://api-rel.evident.io/api/v1/external_accounts/1', external_account.send(:id_url, 1)
142
- end
143
-
144
- should 'return a valid id url for the production environment' do
145
- EspSdk.instance_variable_set(:@env, :production)
146
- config = EspSdk::Configure.new(email: 'test@evident.io')
147
- # Test through a different endpoint to get a valid URL
148
- external_account = EspSdk::EndPoints::ExternalAccounts.new(config)
149
- assert_equal 'https://api.evident.io/api/v1/external_accounts/1', external_account.send(:id_url, 1)
150
- end
151
- end
152
-
153
- context '#base_url' do
154
- should 'return a valid base url for the development environment' do
155
- # Test through a different endpoint to get a valid URL
156
- EspSdk.instance_variable_set(:@env, :development)
157
- external_account = EspSdk::EndPoints::ExternalAccounts.new(@config)
158
- assert_equal 'http://0.0.0.0:3000/api/v1/external_accounts', external_account.send(:base_url)
159
- end
160
-
161
- should 'return a valid base url for the release environment' do
162
- EspSdk.expects(:release?).returns(true)
163
- config = EspSdk::Configure.new(email: 'test@evident.io')
164
- # Test through a different endpoint to get a valid URL
165
- external_account = EspSdk::EndPoints::ExternalAccounts.new(config)
166
- assert_equal 'https://api-rel.evident.io/api/v1/external_accounts', external_account.send(:base_url)
167
- end
168
-
169
- should 'return a valid base url for the production environment' do
170
- EspSdk.expects(:production?).returns(true)
171
- config = EspSdk::Configure.new(email: 'test@evident.io')
172
- # Test through a different endpoint to get a valid URL
173
- external_account = EspSdk::EndPoints::ExternalAccounts.new(config)
174
- assert_equal 'https://api.evident.io/api/v1/external_accounts', external_account.send(:base_url)
175
- end
176
- end
177
-
178
- context 'current_page' do
179
- should 'convert hashes to ActiveSupport::HashWithIndifferentAccess' do
180
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{stub: 'Stub'}, {}].to_json)
181
-
182
- @base.list
183
-
184
- assert @base.current_page.first.is_a?(ActiveSupport::HashWithIndifferentAccess)
185
- assert @base.current_page.last.is_a?(ActiveSupport::HashWithIndifferentAccess)
186
- end
187
- end
188
-
189
- context 'current_record' do
190
- should 'be ActiveSupport::HashWithIndifferentAccess' do
191
- FakeWeb.register_uri(:get, %r{api/v1/base/1}, body: [{ stub: 'Stub' }].to_json)
192
-
193
- @base.show(id: 1)
194
-
195
- assert @base.current_record.is_a?(ActiveSupport::HashWithIndifferentAccess)
196
- end
197
- end
198
-
199
- context 'page_links' do
200
- should 'be ActiveSupport::HashWithIndifferentAccess' do
201
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
202
-
203
- @base.list
204
-
205
- assert @base.instance_variable_get(:@page_links).is_a?(ActiveSupport::HashWithIndifferentAccess)
206
- end
207
-
208
- should 'set @page_links to hash with URLs if in JSON format' do
209
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json,
210
- link: %({"next": "http://test.host/api/v1/custom_signatures?page=2", "last": "http://test.host/api/v1/custom_signatures?page=5"}))
211
-
212
- @base.list
213
-
214
- links = @base.instance_variable_get(:@page_links)
215
- assert_equal 'http://test.host/api/v1/custom_signatures?page=5', links[:last]
216
- assert_equal 'http://test.host/api/v1/custom_signatures?page=2', links[:next]
217
- end
218
-
219
- should 'set @page_links to hash with URLs if in HTTP format' do
220
- FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json,
221
- link: %(<http://test.host/api/v1/custom_signatures?page=5>; rel="last", <http://test.host/api/v1/custom_signatures?page=2>; rel="next"))
222
- @base.list
223
-
224
- links = @base.instance_variable_get(:@page_links)
225
- assert_equal 'http://test.host/api/v1/custom_signatures?page=5', links[:last]
226
- assert_equal 'http://test.host/api/v1/custom_signatures?page=2', links[:next]
227
- end
228
- end
229
- end
230
- end
@@ -1,90 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
-
3
- class CustomSignaturesTest < ActiveSupport::TestCase
4
- context 'CustomSignatures' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @custom_signatures = EspSdk::EndPoints::CustomSignatures.new(@config)
10
- end
11
-
12
- context '#run' do
13
- should 'call validate_run_params and submit' do
14
- params = { id: 1, regiond: [:us_east_1], external_account_id: 1 }
15
- valid_params = @custom_signatures.send(:valid_run_params)
16
- @custom_signatures.expects(:validate_run_params).with(valid_params, params.keys)
17
- run_url = @custom_signatures.send(:run_url)
18
- @custom_signatures.expects(:submit).with(run_url, :post, params)
19
- @custom_signatures.run(params)
20
- end
21
- end
22
-
23
- context '#run_raw' do
24
- should 'call validate_run_params and submit' do
25
- params = { signature: 'test', regiond: [:us_east_1], external_account_id: 1 }
26
- valid_params = @custom_signatures.send(:valid_run_raw_params)
27
- @custom_signatures.expects(:validate_run_params).with(valid_params, params.keys)
28
- run_url = @custom_signatures.send(:run_url)
29
- @custom_signatures.expects(:submit).with(run_url, :post, params)
30
- @custom_signatures.run_raw(params)
31
- end
32
- end
33
-
34
- context '#run_url' do
35
- should 'have the correct run_url for development environment' do
36
- EspSdk.instance_variable_set(:@env, :development)
37
- assert_equal 'http://0.0.0.0:3000/api/v1/custom_signatures/run', @custom_signatures.send(:run_url)
38
- end
39
-
40
- should 'have the correct run_url for the release environment' do
41
- EspSdk.instance_variable_set(:@env, :release)
42
- assert_equal 'https://api-rel.evident.io/api/v1/custom_signatures/run', @custom_signatures.send(:run_url)
43
- end
44
-
45
- should 'have the correct run_url for the production environment' do
46
- EspSdk.instance_variable_set(:@env, :production)
47
- assert_equal 'https://api.evident.io/api/v1/custom_signatures/run', @custom_signatures.send(:run_url)
48
- end
49
- end
50
-
51
- context '#valid_run_params' do
52
- should 'have the correct keys' do
53
- valid_params = @custom_signatures.send(:valid_run_params)
54
-
55
- [:id, :regions, :external_account_id].each do |key|
56
- assert_includes valid_params, key
57
- end
58
- end
59
- end
60
-
61
- context '#valid_run_raw_params' do
62
- should 'have the correct keys' do
63
- valid_params = @custom_signatures.send(:valid_run_raw_params)
64
- [:signature, :regions, :external_account_id].each do |key|
65
- assert_includes valid_params, key
66
- end
67
- end
68
- end
69
-
70
- context '#validate_run_params' do
71
- setup { @valid_params = @custom_signatures.send(:valid_run_params) }
72
- should 'raise an error for a missing param' do
73
- e = assert_raises EspSdk::MissingAttribute do
74
- @custom_signatures.send(:validate_run_params, @valid_params, { id: 1, regions: [:us_east_1] })
75
- end
76
-
77
- assert_equal 'Missing required attribute external_account_id', e.message
78
- end
79
-
80
- should 'raise an error for an unknown attribute' do
81
- e = assert_raises EspSdk::UnknownAttribute do
82
- @custom_signatures.send(:validate_run_params, @valid_params, { id: 1, regions: [:us_east_1],
83
- external_account_id: 1, bad_param: 1, language: 'javascript'}.keys)
84
- end
85
-
86
- assert_equal 'Unknown attribute bad_param', e.message
87
- end
88
- end
89
- end
90
- end
@@ -1,55 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
-
3
- class DashboardTest < ActiveSupport::TestCase
4
- context 'Dashboard' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @dashboard = EspSdk::EndPoints::Dashboard.new(@config)
10
- end
11
-
12
- context '#timewarp' do
13
- should 'call validate_timewarp_params and submit' do
14
- params = { time: 1.hour.ago.to_i }
15
- url = @dashboard.send(:timewarp_url)
16
- @dashboard.expects(:validate_timewarp_params).with(params.keys)
17
- @dashboard.expects(:submit).with(url, :post, params)
18
- @dashboard.timewarp(params)
19
- end
20
- end
21
-
22
- context '#timewarp_url' do
23
- should 'have the correct run_url for development environment' do
24
- EspSdk.instance_variable_set(:@env, :development)
25
- assert_equal 'http://0.0.0.0:3000/api/v1/dashboard/timewarp', @dashboard.send(:timewarp_url)
26
- end
27
-
28
- should 'have the correct run_url for the release environment' do
29
- EspSdk.instance_variable_set(:@env, :release)
30
- assert_equal 'https://api-rel.evident.io/api/v1/dashboard/timewarp', @dashboard.send(:timewarp_url)
31
- end
32
-
33
- should 'have the correct run_url for the production environment' do
34
- EspSdk.instance_variable_set(:@env, :production)
35
- assert_equal 'https://api.evident.io/api/v1/dashboard/timewarp', @dashboard.send(:timewarp_url)
36
- end
37
- end
38
-
39
- context '#validate_timewarp_params' do
40
- should 'raise a MissingAttribute error for missing the time attribute' do
41
- e = assert_raises EspSdk::MissingAttribute do
42
- @dashboard.send(:validate_timewarp_params, [])
43
- end
44
- assert_equal 'Missing required attribute time', e.message
45
- end
46
-
47
- should 'raise a UnknownAttribute for an invalid attribute' do
48
- e = assert_raises EspSdk::UnknownAttribute do
49
- @dashboard.send(:validate_timewarp_params, [:time, :invalid])
50
- end
51
- assert_equal 'Unknown attribute invalid', e.message
52
- end
53
- end
54
- end
55
- end
@@ -1,20 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
-
3
- class ExternalAccountsTest < ActiveSupport::TestCase
4
- context 'ExternalAccounts' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @external_accounts = EspSdk::EndPoints::ExternalAccounts.new(@config)
10
- end
11
-
12
-
13
- context '#generate_external_id' do
14
- should 'call SecureRandom.uuid' do
15
- SecureRandom.expects(:uuid)
16
- @external_accounts.generate_external_id
17
- end
18
- end
19
- end
20
- end
@@ -1,83 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
-
3
- class SignaturesTest < ActiveSupport::TestCase
4
- context 'Signatures' do
5
- setup do
6
- # Stub the token setup for our configuration object
7
- EspSdk::Configure.any_instance.expects(:token_setup).returns(nil).at_least_once
8
- @config = EspSdk::Configure.new(email: 'test@evident.io')
9
- @signatures = EspSdk::EndPoints::Signatures.new(@config)
10
- end
11
-
12
- context '#run' do
13
- should 'call validate_run_params and submit' do
14
- params = { signature_name: 'test', regions: [:us_east_1], external_account_id: 1 }
15
- run_url = @signatures.send(:run_url)
16
- @signatures.expects(:validate_run_params).with(params)
17
- @signatures.expects(:submit).with(run_url, :post, params)
18
- @signatures.run(params)
19
- end
20
- end
21
-
22
- context '#names' do
23
- should 'call submit' do
24
- name_url = @signatures.send(:name_url)
25
- @signatures.expects(:submit).with(name_url, :get)
26
- @signatures.names
27
- end
28
- end
29
-
30
- context '#run_url' do
31
- should 'have the correct run_url for development environment' do
32
- EspSdk.instance_variable_set(:@env, :development)
33
- assert_equal 'http://0.0.0.0:3000/api/v1/signatures/run', @signatures.send(:run_url)
34
- end
35
-
36
- should 'have the correct run_url for the release environment' do
37
- EspSdk.instance_variable_set(:@env, :release)
38
- assert_equal 'https://api-rel.evident.io/api/v1/signatures/run', @signatures.send(:run_url)
39
- end
40
-
41
- should 'have the correct run_url for the production environment' do
42
- EspSdk.instance_variable_set(:@env, :production)
43
- assert_equal 'https://api.evident.io/api/v1/signatures/run', @signatures.send(:run_url)
44
- end
45
- end
46
-
47
- context '#name_url' do
48
- should 'have the correct run_url for development environment' do
49
- EspSdk.instance_variable_set(:@env, :development)
50
- assert_equal 'http://0.0.0.0:3000/api/v1/signatures/signature_names', @signatures.send(:name_url)
51
- end
52
-
53
- should 'have the correct run_url for the release environment' do
54
- EspSdk.instance_variable_set(:@env, :release)
55
- assert_equal 'https://api-rel.evident.io/api/v1/signatures/signature_names', @signatures.send(:name_url)
56
- end
57
-
58
- should 'have the correct run_url for the production environment' do
59
- EspSdk.instance_variable_set(:@env, :production)
60
- assert_equal 'https://api.evident.io/api/v1/signatures/signature_names', @signatures.send(:name_url)
61
- end
62
- end
63
-
64
- context '#validate_run_params' do
65
- should 'raise an error for a missing param' do
66
- e = assert_raises EspSdk::MissingAttribute do
67
- @signatures.send(:validate_run_params, { signature_name: 'test', regions: [:us_east_1] })
68
- end
69
-
70
- assert_equal 'Missing required attribute external_account_id', e.message
71
- end
72
-
73
- should 'raise an error for an unknown attribute' do
74
- e = assert_raises EspSdk::UnknownAttribute do
75
- @signatures.send(:validate_run_params, { signature_name: 'test', regions: [:us_east_1],
76
- external_account_id: 1, bad_param: 1})
77
- end
78
-
79
- assert_equal 'Unknown attribute bad_param', e.message
80
- end
81
- end
82
- end
83
- end