moesif_api 1.0.3 → 1.0.4
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.
- checksums.yaml +4 -4
- data/LICENSE +216 -24
- data/README.md +124 -117
- data/lib/moesif_api/api_helper.rb +150 -150
- data/lib/moesif_api/configuration.rb +17 -17
- data/lib/moesif_api/controllers/api_controller.rb +87 -87
- data/lib/moesif_api/controllers/health_controller.rb +52 -52
- data/lib/moesif_api/exceptions/api_exception.rb +16 -16
- data/lib/moesif_api/http/http_call_back.rb +16 -16
- data/lib/moesif_api/http/http_client.rb +112 -112
- data/lib/moesif_api/http/http_context.rb +14 -14
- data/lib/moesif_api/http/http_method_enum.rb +7 -7
- data/lib/moesif_api/http/http_request.rb +28 -28
- data/lib/moesif_api/http/http_response.rb +19 -19
- data/lib/moesif_api/http/unirest_client.rb +35 -35
- data/lib/moesif_api/models/base_model.rb +32 -32
- data/lib/moesif_api/models/event_model.rb +71 -71
- data/lib/moesif_api/models/event_request_model.rb +90 -90
- data/lib/moesif_api/models/event_response_model.rb +72 -72
- data/lib/moesif_api/models/status_model.rb +44 -44
- data/lib/moesif_api/moesif_api_client.rb +22 -22
- data/lib/moesif_api.rb +33 -33
- data/test/controllers/controller_test_base.rb +28 -28
- data/test/http_response_catcher.rb +16 -16
- data/test/test_helper.rb +94 -94
- metadata +4 -4
@@ -1,28 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'json'
|
4
|
-
require 'test/unit'
|
5
|
-
require 'moesif_api.rb'
|
6
|
-
require_relative '../test_helper.rb'
|
7
|
-
require_relative '../http_response_catcher.rb'
|
8
|
-
|
9
|
-
class ControllerTestBase < Test::Unit::TestCase
|
10
|
-
include MoesifApi
|
11
|
-
|
12
|
-
class << self
|
13
|
-
attr_accessor :controller
|
14
|
-
end
|
15
|
-
|
16
|
-
# Called only once for a test class before any test has executed.
|
17
|
-
def self.startup
|
18
|
-
@@api_client = MoesifAPIClient.new("eyJhcHAiOiIzNjU6NiIsInZlciI6IjIuMCIsIm9yZyI6IjM1OTo0IiwiaWF0IjoxNDczMzc5MjAwfQ.9WOx3D357PGMxrXzFm3pV3IzJSYNsO4oRudiMI8mQ3Q")
|
19
|
-
@@request_timeout = 30
|
20
|
-
@@assert_precision = 0.01
|
21
|
-
end
|
22
|
-
|
23
|
-
# Called once before every test case.
|
24
|
-
def setup
|
25
|
-
@response_catcher = HttpResponseCatcher.new
|
26
|
-
self.class.controller.http_call_back = @response_catcher
|
27
|
-
end
|
28
|
-
end
|
1
|
+
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'moesif_api.rb'
|
6
|
+
require_relative '../test_helper.rb'
|
7
|
+
require_relative '../http_response_catcher.rb'
|
8
|
+
|
9
|
+
class ControllerTestBase < Test::Unit::TestCase
|
10
|
+
include MoesifApi
|
11
|
+
|
12
|
+
class << self
|
13
|
+
attr_accessor :controller
|
14
|
+
end
|
15
|
+
|
16
|
+
# Called only once for a test class before any test has executed.
|
17
|
+
def self.startup
|
18
|
+
@@api_client = MoesifAPIClient.new("eyJhcHAiOiIzNjU6NiIsInZlciI6IjIuMCIsIm9yZyI6IjM1OTo0IiwiaWF0IjoxNDczMzc5MjAwfQ.9WOx3D357PGMxrXzFm3pV3IzJSYNsO4oRudiMI8mQ3Q")
|
19
|
+
@@request_timeout = 30
|
20
|
+
@@assert_precision = 0.01
|
21
|
+
end
|
22
|
+
|
23
|
+
# Called once before every test case.
|
24
|
+
def setup
|
25
|
+
@response_catcher = HttpResponseCatcher.new
|
26
|
+
self.class.controller.http_call_back = @response_catcher
|
27
|
+
end
|
28
|
+
end
|
@@ -1,16 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class HttpResponseCatcher < MoesifApi::HttpCallBack
|
4
|
-
attr_accessor :response
|
5
|
-
|
6
|
-
def on_before_request(request)
|
7
|
-
end
|
8
|
-
|
9
|
-
# Catching the response
|
10
|
-
def on_after_response(context)
|
11
|
-
@response = context.response
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
|
1
|
+
|
2
|
+
|
3
|
+
class HttpResponseCatcher < MoesifApi::HttpCallBack
|
4
|
+
attr_accessor :response
|
5
|
+
|
6
|
+
def on_before_request(request)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Catching the response
|
10
|
+
def on_after_response(context)
|
11
|
+
@response = context.response
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
|
data/test/test_helper.rb
CHANGED
@@ -1,94 +1,94 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'tempfile'
|
4
|
-
require 'open-uri'
|
5
|
-
|
6
|
-
class TestHelper
|
7
|
-
|
8
|
-
@cache = Hash.new
|
9
|
-
|
10
|
-
# Class method to compare the received headers with the expected headers.
|
11
|
-
# @param [Hash] A hash of expected headers (keys in lower case).
|
12
|
-
# @param [Hash] A hash of received headers.
|
13
|
-
# @param [Boolean, optional] A flag which determines if we allow extra headers.
|
14
|
-
def self.match_headers(expected_headers,
|
15
|
-
received_headers,
|
16
|
-
allow_extra: true)
|
17
|
-
return false if ((received_headers.length < expected_headers.length) ||
|
18
|
-
((allow_extra == false) && (received_headers.length > expected_headers.length)))
|
19
|
-
|
20
|
-
received_headers = Hash[received_headers.map{|k, v| [k.to_s.downcase, v]}]
|
21
|
-
expected_headers.each do |e_key, e_value|
|
22
|
-
return false unless received_headers.key?(e_key)
|
23
|
-
return false if ((e_value != nil) &&
|
24
|
-
(e_value != received_headers[e_key]))
|
25
|
-
end
|
26
|
-
|
27
|
-
return true
|
28
|
-
end
|
29
|
-
|
30
|
-
# Class method to compare the received body with the expected body.
|
31
|
-
# @param [Dynamic] The expected body.
|
32
|
-
# @param [Dynamic] The received body.
|
33
|
-
# @param [Boolean, optional] A flag which determines if we check values in dictionaries.
|
34
|
-
# @param [Boolean, optional] A flag which determines if we check the order of array elements.
|
35
|
-
# @param [Boolean, optional] A flag which determines if we check the count of array elements.
|
36
|
-
def self.match_body(expected_body,
|
37
|
-
received_body,
|
38
|
-
check_values: false,
|
39
|
-
check_order: false,
|
40
|
-
check_count: false)
|
41
|
-
if expected_body.instance_of? Hash
|
42
|
-
return False if not received_body.instance_of? Hash
|
43
|
-
for key in expected_body.keys
|
44
|
-
return false if not received_body.keys.include? key
|
45
|
-
if check_values or expected_body[key].instance_of? Hash
|
46
|
-
return false if not TestHelper.match_body(expected_body[key],
|
47
|
-
received_body[key],
|
48
|
-
check_values: check_values,
|
49
|
-
check_order: check_order,
|
50
|
-
check_count: check_count)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
elsif expected_body.instance_of? Array
|
54
|
-
return False if not received_body.instance_of? Array
|
55
|
-
if check_count == true && (expected_body.length != received_body.length)
|
56
|
-
return false
|
57
|
-
else
|
58
|
-
previous_matches = Array.new
|
59
|
-
expected_body.each.with_index do |expected_element, i|
|
60
|
-
matches = (received_body.map.with_index do |received_element, j|
|
61
|
-
j if TestHelper.match_body(expected_element,
|
62
|
-
received_element,
|
63
|
-
check_values: check_values,
|
64
|
-
check_order: check_order,
|
65
|
-
check_count: check_count)
|
66
|
-
end).compact
|
67
|
-
return false if matches.length == 0
|
68
|
-
if check_order == true
|
69
|
-
return false if (i != 0 && matches.map{|x| previous_matches.map{|y| y > x}.all?}.all?)
|
70
|
-
previous_matches = matches
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
elsif expected_body != received_body
|
75
|
-
return false
|
76
|
-
end
|
77
|
-
return true
|
78
|
-
end
|
79
|
-
|
80
|
-
# Class method which takes a URL, downloads the file (if not already downloaded
|
81
|
-
# for this test session) and returns a file object for the file in read-binary mode.
|
82
|
-
# @param [String] The URL of the required file.
|
83
|
-
def self.get_file(url)
|
84
|
-
if not @cache.keys.include? url
|
85
|
-
@cache[url] = Tempfile.new('APIMatic')
|
86
|
-
@cache[url].binmode
|
87
|
-
@cache[url].write(open(url, {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}).read)
|
88
|
-
else
|
89
|
-
@cache[url].open
|
90
|
-
@cache[url].binmode
|
91
|
-
end
|
92
|
-
return @cache[url]
|
93
|
-
end
|
94
|
-
end
|
1
|
+
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'open-uri'
|
5
|
+
|
6
|
+
class TestHelper
|
7
|
+
|
8
|
+
@cache = Hash.new
|
9
|
+
|
10
|
+
# Class method to compare the received headers with the expected headers.
|
11
|
+
# @param [Hash] A hash of expected headers (keys in lower case).
|
12
|
+
# @param [Hash] A hash of received headers.
|
13
|
+
# @param [Boolean, optional] A flag which determines if we allow extra headers.
|
14
|
+
def self.match_headers(expected_headers,
|
15
|
+
received_headers,
|
16
|
+
allow_extra: true)
|
17
|
+
return false if ((received_headers.length < expected_headers.length) ||
|
18
|
+
((allow_extra == false) && (received_headers.length > expected_headers.length)))
|
19
|
+
|
20
|
+
received_headers = Hash[received_headers.map{|k, v| [k.to_s.downcase, v]}]
|
21
|
+
expected_headers.each do |e_key, e_value|
|
22
|
+
return false unless received_headers.key?(e_key)
|
23
|
+
return false if ((e_value != nil) &&
|
24
|
+
(e_value != received_headers[e_key]))
|
25
|
+
end
|
26
|
+
|
27
|
+
return true
|
28
|
+
end
|
29
|
+
|
30
|
+
# Class method to compare the received body with the expected body.
|
31
|
+
# @param [Dynamic] The expected body.
|
32
|
+
# @param [Dynamic] The received body.
|
33
|
+
# @param [Boolean, optional] A flag which determines if we check values in dictionaries.
|
34
|
+
# @param [Boolean, optional] A flag which determines if we check the order of array elements.
|
35
|
+
# @param [Boolean, optional] A flag which determines if we check the count of array elements.
|
36
|
+
def self.match_body(expected_body,
|
37
|
+
received_body,
|
38
|
+
check_values: false,
|
39
|
+
check_order: false,
|
40
|
+
check_count: false)
|
41
|
+
if expected_body.instance_of? Hash
|
42
|
+
return False if not received_body.instance_of? Hash
|
43
|
+
for key in expected_body.keys
|
44
|
+
return false if not received_body.keys.include? key
|
45
|
+
if check_values or expected_body[key].instance_of? Hash
|
46
|
+
return false if not TestHelper.match_body(expected_body[key],
|
47
|
+
received_body[key],
|
48
|
+
check_values: check_values,
|
49
|
+
check_order: check_order,
|
50
|
+
check_count: check_count)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
elsif expected_body.instance_of? Array
|
54
|
+
return False if not received_body.instance_of? Array
|
55
|
+
if check_count == true && (expected_body.length != received_body.length)
|
56
|
+
return false
|
57
|
+
else
|
58
|
+
previous_matches = Array.new
|
59
|
+
expected_body.each.with_index do |expected_element, i|
|
60
|
+
matches = (received_body.map.with_index do |received_element, j|
|
61
|
+
j if TestHelper.match_body(expected_element,
|
62
|
+
received_element,
|
63
|
+
check_values: check_values,
|
64
|
+
check_order: check_order,
|
65
|
+
check_count: check_count)
|
66
|
+
end).compact
|
67
|
+
return false if matches.length == 0
|
68
|
+
if check_order == true
|
69
|
+
return false if (i != 0 && matches.map{|x| previous_matches.map{|y| y > x}.all?}.all?)
|
70
|
+
previous_matches = matches
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
elsif expected_body != received_body
|
75
|
+
return false
|
76
|
+
end
|
77
|
+
return true
|
78
|
+
end
|
79
|
+
|
80
|
+
# Class method which takes a URL, downloads the file (if not already downloaded
|
81
|
+
# for this test session) and returns a file object for the file in read-binary mode.
|
82
|
+
# @param [String] The URL of the required file.
|
83
|
+
def self.get_file(url)
|
84
|
+
if not @cache.keys.include? url
|
85
|
+
@cache[url] = Tempfile.new('APIMatic')
|
86
|
+
@cache[url].binmode
|
87
|
+
@cache[url].write(open(url, {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}).read)
|
88
|
+
else
|
89
|
+
@cache[url].open
|
90
|
+
@cache[url].binmode
|
91
|
+
end
|
92
|
+
return @cache[url]
|
93
|
+
end
|
94
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moesif_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Moesif, Inc
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-10-
|
12
|
+
date: 2016-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: test-unit
|
@@ -87,7 +87,7 @@ files:
|
|
87
87
|
- test/test_helper.rb
|
88
88
|
homepage: https://moesif.com
|
89
89
|
licenses:
|
90
|
-
-
|
90
|
+
- Apache-2.0
|
91
91
|
metadata: {}
|
92
92
|
post_install_message:
|
93
93
|
rdoc_options: []
|
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
107
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.6.7
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: moesif_api
|