uniqueCalculator 1.1 → 1.2.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.
- checksums.yaml +4 -4
- data/README.md +4 -3
- data/lib/apimatic_calculator/api_helper.rb +1 -440
- data/lib/apimatic_calculator/client.rb +9 -2
- data/lib/apimatic_calculator/configuration.rb +14 -40
- data/lib/apimatic_calculator/controllers/base_controller.rb +42 -36
- data/lib/apimatic_calculator/controllers/simple_calculator_controller.rb +13 -27
- data/lib/apimatic_calculator/exceptions/api_exception.rb +1 -11
- data/lib/apimatic_calculator/http/http_call_back.rb +1 -15
- data/lib/apimatic_calculator/http/http_method_enum.rb +1 -4
- data/lib/apimatic_calculator/http/http_request.rb +1 -45
- data/lib/apimatic_calculator/http/http_response.rb +1 -20
- data/lib/apimatic_calculator/models/base_model.rb +1 -1
- data/lib/apimatic_calculator/utilities/date_time_helper.rb +1 -146
- data/lib/apimatic_calculator/utilities/file_wrapper.rb +5 -5
- data/lib/apimatic_calculator.rb +6 -6
- data/test/controllers/controller_test_base.rb +9 -2
- data/test/controllers/test_simple_calculator_controller.rb +3 -2
- metadata +11 -111
- data/lib/apimatic_calculator/exceptions/validation_exception.rb +0 -18
- data/lib/apimatic_calculator/http/faraday_client.rb +0 -98
- data/lib/apimatic_calculator/http/http_client.rb +0 -123
- data/test/test_helper.rb +0 -94
@@ -8,52 +8,58 @@ module ApimaticCalculator
|
|
8
8
|
class BaseController
|
9
9
|
attr_accessor :config, :http_call_back
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
@http_call_back = http_call_back
|
14
|
-
|
15
|
-
@global_headers = {
|
16
|
-
'user-agent' => get_user_agent
|
17
|
-
}
|
18
|
-
end
|
19
|
-
|
20
|
-
def validate_parameters(args)
|
21
|
-
args.each do |_name, value|
|
22
|
-
raise ArgumentError, "Required parameter #{_name} cannot be nil." if value.nil?
|
23
|
-
end
|
11
|
+
def self.user_agent
|
12
|
+
'APIMATIC 3.0'
|
24
13
|
end
|
25
14
|
|
26
|
-
def validate_parameters_types(args)
|
27
|
-
args.each do |_name, type|
|
28
|
-
key, val = type.first
|
29
|
-
APIHelper.validate_types(key, val) unless key.nil?
|
30
|
-
end
|
31
|
-
end
|
32
15
|
|
33
|
-
|
34
|
-
|
16
|
+
GLOBAL_ERRORS = {
|
17
|
+
'default' => ErrorCase.new
|
18
|
+
.error_message('HTTP response not OK.')
|
19
|
+
.exception_type(APIException)
|
20
|
+
}.freeze
|
35
21
|
|
36
|
-
|
37
|
-
|
22
|
+
# Initialization constructor.
|
23
|
+
# @param [GlobalConfiguration] global_configuration The instance of GlobalConfiguration.
|
24
|
+
def initialize(global_configuration)
|
25
|
+
@global_configuration = global_configuration
|
26
|
+
@config = @global_configuration.client_configuration
|
27
|
+
@http_call_back = @config.http_callback
|
28
|
+
@api_call = ApiCall.new(@global_configuration)
|
29
|
+
end
|
38
30
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
@http_call_back&.on_after_response(response)
|
31
|
+
# Creates a new builder for the Api Call instance.
|
32
|
+
# @return [ApiCall] The instance of ApiCall.
|
33
|
+
def new_api_call_builder
|
34
|
+
@api_call.new_builder
|
35
|
+
end
|
45
36
|
|
46
|
-
|
37
|
+
# Creates a new instance of the request builder.
|
38
|
+
# @param [HttpMethodEnum] http_method The HTTP method to use in the request.
|
39
|
+
# @param [String] path The endpoint path to use in the request.
|
40
|
+
# @param [String] server The server to extract the base uri for the request.
|
41
|
+
# @return [RequestBuilder] The instance of RequestBuilder.
|
42
|
+
def new_request_builder(http_method, path, server)
|
43
|
+
RequestBuilder.new
|
44
|
+
.http_method(http_method)
|
45
|
+
.path(path)
|
46
|
+
.server(server)
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
# Creates a new instance of the response handler.
|
50
|
+
# @return [ResponseHandler] The instance of ResponseHandler.
|
51
|
+
def new_response_handler
|
52
|
+
ResponseHandler.new
|
52
53
|
end
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
# Creates a new instance of the parameter.
|
56
|
+
# @param [String|optional] key The key of the parameter.
|
57
|
+
# @param [Object] value The value of the parameter.
|
58
|
+
# @return [Parameter] The instance of Parameter.
|
59
|
+
def new_parameter(value, key: nil)
|
60
|
+
Parameter.new
|
61
|
+
.key(key)
|
62
|
+
.value(value)
|
57
63
|
end
|
58
64
|
end
|
59
65
|
end
|
@@ -6,10 +6,6 @@
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# SimpleCalculatorController
|
8
8
|
class SimpleCalculatorController < BaseController
|
9
|
-
def initialize(config, http_call_back: nil)
|
10
|
-
super(config, http_call_back: http_call_back)
|
11
|
-
end
|
12
|
-
|
13
9
|
# Calculates the expression using the specified operation.
|
14
10
|
# @param [OperationTypeEnum] operation Required parameter: The operator to
|
15
11
|
# apply on the variables
|
@@ -17,29 +13,19 @@ module ApimaticCalculator
|
|
17
13
|
# @param [Float] y Required parameter: The RHS value
|
18
14
|
# @return [Float] response from the API call
|
19
15
|
def get_calculate(options = {})
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
# Prepare and execute HttpRequest.
|
35
|
-
_request = config.http_client.get(
|
36
|
-
_query_url
|
37
|
-
)
|
38
|
-
_response = execute_request(_request)
|
39
|
-
validate_response(_response)
|
40
|
-
|
41
|
-
# Return appropriate response type.
|
42
|
-
_response.raw_body.to_f
|
16
|
+
new_api_call_builder
|
17
|
+
.request(new_request_builder(HttpMethodEnum::GET,
|
18
|
+
'/{operation}',
|
19
|
+
Server::CALCULATOR)
|
20
|
+
.template_param(new_parameter(options['operation'], key: 'operation')
|
21
|
+
.should_encode(true))
|
22
|
+
.query_param(new_parameter(options['x'], key: 'x'))
|
23
|
+
.query_param(new_parameter(options['y'], key: 'y')))
|
24
|
+
.response(new_response_handler
|
25
|
+
.deserializer(APIHelper.method(:deserialize_primitive_types))
|
26
|
+
.deserialize_into(proc do |response| response.to_f end)
|
27
|
+
.is_primitive_response(true))
|
28
|
+
.execute
|
43
29
|
end
|
44
30
|
end
|
45
31
|
end
|
@@ -5,16 +5,6 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# Class for exceptions when there is a network error, status code error, etc.
|
8
|
-
class APIException <
|
9
|
-
attr_reader :response, :response_code
|
10
|
-
|
11
|
-
# The constructor.
|
12
|
-
# @param [String] The reason for raising an exception.
|
13
|
-
# @param [HttpResponse] The HttpReponse of the API call.
|
14
|
-
def initialize(reason, response)
|
15
|
-
super(reason)
|
16
|
-
@response = response
|
17
|
-
@response_code = response.status_code
|
18
|
-
end
|
8
|
+
class APIException < CoreLibrary::ApiException
|
19
9
|
end
|
20
10
|
end
|
@@ -5,20 +5,6 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# HttpCallBack allows defining callables for pre and post API calls.
|
8
|
-
class HttpCallBack
|
9
|
-
# A controller will call this method before making an HTTP Request.
|
10
|
-
# @param [HttpRequest] The HttpRequest object which the HttpClient
|
11
|
-
# will execute.
|
12
|
-
def on_before_request(_http_request)
|
13
|
-
raise NotImplementedError, 'This method needs
|
14
|
-
to be implemented in a child class.'
|
15
|
-
end
|
16
|
-
|
17
|
-
# A controller will call this method after making an HTTP Request.
|
18
|
-
# @param [HttpResponse] The HttpReponse of the API call.
|
19
|
-
def on_after_response(_http_response)
|
20
|
-
raise NotImplementedError, 'This method needs
|
21
|
-
to be implemented in a child class.'
|
22
|
-
end
|
8
|
+
class HttpCallBack < CoreLibrary::HttpCallback
|
23
9
|
end
|
24
10
|
end
|
@@ -5,9 +5,6 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# HTTP Methods Enumeration.
|
8
|
-
class HttpMethodEnum
|
9
|
-
HTTPMETHODENUM = [GET = 'GET'.freeze, POST = 'POST'.freeze,
|
10
|
-
PUT = 'PUT'.freeze, PATCH = 'PATCH'.freeze,
|
11
|
-
DELETE = 'DELETE'.freeze, HEAD = 'HEAD'.freeze].freeze
|
8
|
+
class HttpMethodEnum < CoreLibrary::HttpMethod
|
12
9
|
end
|
13
10
|
end
|
@@ -5,50 +5,6 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# Represents a single Http Request.
|
8
|
-
class HttpRequest
|
9
|
-
attr_accessor :http_method, :query_url, :headers,
|
10
|
-
:parameters, :username, :password,
|
11
|
-
:context
|
12
|
-
|
13
|
-
# The constructor.
|
14
|
-
# @param [HttpMethodEnum] The HTTP method.
|
15
|
-
# @param [String] The URL to send the request to.
|
16
|
-
# @param [Hash, Optional] The headers for the HTTP Request.
|
17
|
-
# @param [Hash, Optional] The parameters for the HTTP Request.
|
18
|
-
# @param [Hash, Optional] The context for the HTTP Request.
|
19
|
-
def initialize(http_method,
|
20
|
-
query_url,
|
21
|
-
headers: {},
|
22
|
-
parameters: {},
|
23
|
-
context: {})
|
24
|
-
@http_method = http_method
|
25
|
-
@query_url = query_url
|
26
|
-
@headers = headers
|
27
|
-
@parameters = parameters
|
28
|
-
@context = context
|
29
|
-
end
|
30
|
-
|
31
|
-
# Add a header to the HttpRequest.
|
32
|
-
# @param [String] The name of the header.
|
33
|
-
# @param [String] The value of the header.
|
34
|
-
def add_header(name, value)
|
35
|
-
@headers[name] = value
|
36
|
-
end
|
37
|
-
|
38
|
-
# Add a parameter to the HttpRequest.
|
39
|
-
# @param [String] The name of the parameter.
|
40
|
-
# @param [String] The value of the parameter.
|
41
|
-
def add_parameter(name, value)
|
42
|
-
@parameters[name] = value
|
43
|
-
end
|
44
|
-
|
45
|
-
# Add a query parameter to the HttpRequest.
|
46
|
-
# @param [String] The name of the query parameter.
|
47
|
-
# @param [String] The value of the query parameter.
|
48
|
-
def add_query_parameter(name, value)
|
49
|
-
@query_url = APIHelper.append_url_with_query_parameters(@query_url,
|
50
|
-
name => value)
|
51
|
-
@query_url = APIHelper.clean_url(@query_url)
|
52
|
-
end
|
8
|
+
class HttpRequest < CoreLibrary::HttpRequest
|
53
9
|
end
|
54
10
|
end
|
@@ -5,25 +5,6 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# Http response received.
|
8
|
-
class HttpResponse
|
9
|
-
attr_reader :status_code, :reason_phrase, :headers, :raw_body, :request
|
10
|
-
|
11
|
-
# The constructor
|
12
|
-
# @param [Integer] The status code returned by the server.
|
13
|
-
# @param [String] The reason phrase returned by the server.
|
14
|
-
# @param [Hash] The headers sent by the server in the response.
|
15
|
-
# @param [String] The raw body of the response.
|
16
|
-
# @param [HttpRequest] The request that resulted in this response.
|
17
|
-
def initialize(status_code,
|
18
|
-
reason_phrase,
|
19
|
-
headers,
|
20
|
-
raw_body,
|
21
|
-
request)
|
22
|
-
@status_code = status_code
|
23
|
-
@reason_phrase = reason_phrase
|
24
|
-
@headers = headers
|
25
|
-
@raw_body = raw_body
|
26
|
-
@request = request
|
27
|
-
end
|
8
|
+
class HttpResponse < CoreLibrary::HttpResponse
|
28
9
|
end
|
29
10
|
end
|
@@ -6,151 +6,6 @@
|
|
6
6
|
require 'date'
|
7
7
|
module ApimaticCalculator
|
8
8
|
# A utility that supports dateTime conversion to different formats
|
9
|
-
class DateTimeHelper
|
10
|
-
# Safely converts a DateTime object into a rfc1123 format string
|
11
|
-
# @param [DateTime] The DateTime object
|
12
|
-
# @return [String] The rfc1123 formatted datetime string
|
13
|
-
def self.to_rfc1123(date_time)
|
14
|
-
date_time&.httpdate
|
15
|
-
end
|
16
|
-
|
17
|
-
# Safely converts a map of DateTime objects into a map of rfc1123 format string
|
18
|
-
# @param [hash] a map of DateTime objects
|
19
|
-
# @return [hash] a map of rfc1123 formatted datetime string
|
20
|
-
def self.to_rfc1123_map(date_time, hash, key)
|
21
|
-
return if date_time.nil?
|
22
|
-
|
23
|
-
hash[key] = {}
|
24
|
-
date_time.each do |k, v|
|
25
|
-
hash[key][k] =
|
26
|
-
if v.is_a?(BaseModel)
|
27
|
-
v.to_hash
|
28
|
-
else
|
29
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
|
30
|
-
end
|
31
|
-
end
|
32
|
-
hash[key]
|
33
|
-
end
|
34
|
-
|
35
|
-
# Safely converts an array of DateTime objects into an array of rfc1123 format string
|
36
|
-
# @param [Array] an array of DateTime objects
|
37
|
-
# @return [Array] an array of rfc1123 formatted datetime string
|
38
|
-
def self.to_rfc1123_array(date_time, hash, key)
|
39
|
-
return if date_time.nil?
|
40
|
-
|
41
|
-
hash[key] = date_time.map do |v|
|
42
|
-
if v.is_a?(BaseModel)
|
43
|
-
v.to_hash
|
44
|
-
else
|
45
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Safely converts a DateTime object into a unix format string
|
51
|
-
# @param [DateTime] The DateTime object
|
52
|
-
# @return [String] The unix formatted datetime string
|
53
|
-
def self.to_unix(date_time)
|
54
|
-
date_time.to_time.utc.to_i unless date_time.nil?
|
55
|
-
end
|
56
|
-
|
57
|
-
# Safely converts a map of DateTime objects into a map of unix format string
|
58
|
-
# @param [hash] a map of DateTime objects
|
59
|
-
# @return [hash] a map of unix formatted datetime string
|
60
|
-
def self.to_unix_map(date_time, hash, key)
|
61
|
-
return if date_time.nil?
|
62
|
-
|
63
|
-
hash[key] = {}
|
64
|
-
date_time.each do |k, v|
|
65
|
-
hash[key][k] =
|
66
|
-
if v.is_a?(BaseModel)
|
67
|
-
v.to_hash
|
68
|
-
else
|
69
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
|
70
|
-
end
|
71
|
-
end
|
72
|
-
hash[key]
|
73
|
-
end
|
74
|
-
|
75
|
-
# Safely converts an array of DateTime objects into a map of unix format string
|
76
|
-
# @param [hash] an array of DateTime objects
|
77
|
-
# @return [hash] an array of unix formatted datetime string
|
78
|
-
def self.to_unix_array(date_time, hash, key)
|
79
|
-
return if date_time.nil?
|
80
|
-
|
81
|
-
hash[key] = date_time.map do |v|
|
82
|
-
if v.is_a?(BaseModel)
|
83
|
-
v.to_hash
|
84
|
-
else
|
85
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# Safely converts a DateTime object into a rfc3339 format string
|
91
|
-
# @param [DateTime] The DateTime object
|
92
|
-
# @return [String] The rfc3339 formatted datetime string
|
93
|
-
def self.to_rfc3339(date_time)
|
94
|
-
date_time&.rfc3339
|
95
|
-
end
|
96
|
-
|
97
|
-
# Safely converts a map of DateTime objects into a map of rfc1123 format string
|
98
|
-
# @param [hash] a map of DateTime objects
|
99
|
-
# @return [hash] a map of rfc1123 formatted datetime string
|
100
|
-
def self.to_rfc3339_map(date_time, hash, key)
|
101
|
-
return if date_time.nil?
|
102
|
-
|
103
|
-
hash[key] = {}
|
104
|
-
date_time.each do |k, v|
|
105
|
-
hash[key][k] =
|
106
|
-
if v.is_a?(BaseModel)
|
107
|
-
v.to_hash
|
108
|
-
else
|
109
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
|
110
|
-
end
|
111
|
-
end
|
112
|
-
hash[key]
|
113
|
-
end
|
114
|
-
|
115
|
-
# Safely converts an array of DateTime objects into an array of rfc1123 format string
|
116
|
-
# @param [Array] an array of DateTime objects
|
117
|
-
# @return [Array] an array of rfc1123 formatted datetime string
|
118
|
-
def self.to_rfc3339_array(date_time, hash, key)
|
119
|
-
return if date_time.nil?
|
120
|
-
|
121
|
-
hash[key] = date_time.map do |v|
|
122
|
-
if v.is_a?(BaseModel)
|
123
|
-
v.to_hash
|
124
|
-
else
|
125
|
-
v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
# Safely converts a rfc1123 format string into a DateTime object
|
131
|
-
# @param [String] The rfc1123 formatted datetime string
|
132
|
-
# @return [DateTime] A DateTime object
|
133
|
-
def self.from_rfc1123(date_time)
|
134
|
-
DateTime.httpdate(date_time)
|
135
|
-
end
|
136
|
-
|
137
|
-
# Safely converts a unix format string into a DateTime object
|
138
|
-
# @param [String] The unix formatted datetime string
|
139
|
-
# @return [DateTime] A DateTime object
|
140
|
-
def self.from_unix(date_time)
|
141
|
-
Time.at(date_time.to_i).utc.to_datetime
|
142
|
-
end
|
143
|
-
|
144
|
-
# Safely converts a rfc3339 format string into a DateTime object
|
145
|
-
# @param [String] The rfc3339 formatted datetime string
|
146
|
-
# @return [DateTime] A DateTime object
|
147
|
-
def self.from_rfc3339(date_time)
|
148
|
-
# missing timezone information
|
149
|
-
if date_time.end_with?('Z') || date_time.index('+')
|
150
|
-
DateTime.rfc3339(date_time)
|
151
|
-
else
|
152
|
-
DateTime.rfc3339("#{date_time}Z")
|
153
|
-
end
|
154
|
-
end
|
9
|
+
class DateTimeHelper < CoreLibrary::DateTimeHelper
|
155
10
|
end
|
156
11
|
end
|
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
module ApimaticCalculator
|
7
7
|
# A utility to allow users to set the content-type for files
|
8
|
-
class FileWrapper
|
9
|
-
|
10
|
-
|
8
|
+
class FileWrapper < CoreLibrary::FileWrapper
|
9
|
+
# The constructor.
|
10
|
+
# @param [File] file The file to be sent in the request.
|
11
|
+
# @param [string] content_type The content type of the provided file.
|
11
12
|
def initialize(file, content_type: 'application/octet-stream')
|
12
|
-
|
13
|
-
@content_type = content_type
|
13
|
+
super
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
data/lib/apimatic_calculator.rb
CHANGED
@@ -5,9 +5,12 @@
|
|
5
5
|
|
6
6
|
require 'date'
|
7
7
|
require 'json'
|
8
|
-
require '
|
9
|
-
require '
|
10
|
-
require '
|
8
|
+
require 'apimatic_core_interfaces'
|
9
|
+
require 'apimatic_core'
|
10
|
+
require 'apimatic_faraday_client_adapter'
|
11
|
+
# rubocop:disable Style/MixinUsage
|
12
|
+
include CoreLibrary
|
13
|
+
# rubocop:enable Style/MixinUsage
|
11
14
|
|
12
15
|
require_relative 'apimatic_calculator/api_helper'
|
13
16
|
require_relative 'apimatic_calculator/client'
|
@@ -18,8 +21,6 @@ require_relative 'apimatic_calculator/utilities/date_time_helper'
|
|
18
21
|
|
19
22
|
# Http
|
20
23
|
require_relative 'apimatic_calculator/http/http_call_back'
|
21
|
-
require_relative 'apimatic_calculator/http/http_client'
|
22
|
-
require_relative 'apimatic_calculator/http/faraday_client'
|
23
24
|
require_relative 'apimatic_calculator/http/http_method_enum'
|
24
25
|
require_relative 'apimatic_calculator/http/http_request'
|
25
26
|
require_relative 'apimatic_calculator/http/http_response'
|
@@ -30,7 +31,6 @@ require_relative 'apimatic_calculator/models/operation_type_enum'
|
|
30
31
|
|
31
32
|
# Exceptions
|
32
33
|
require_relative 'apimatic_calculator/exceptions/api_exception'
|
33
|
-
require_relative 'apimatic_calculator/exceptions/validation_exception'
|
34
34
|
|
35
35
|
require_relative 'apimatic_calculator/configuration'
|
36
36
|
|
@@ -9,7 +9,6 @@ require 'minitest/hell'
|
|
9
9
|
require 'minitest/pride'
|
10
10
|
require 'minitest/proveit'
|
11
11
|
require 'apimatic_calculator'
|
12
|
-
require_relative '../test_helper'
|
13
12
|
require_relative '../http_response_catcher'
|
14
13
|
|
15
14
|
class ControllerTestBase < Minitest::Test
|
@@ -17,5 +16,13 @@ class ControllerTestBase < Minitest::Test
|
|
17
16
|
include ApimaticCalculator
|
18
17
|
|
19
18
|
# Create configuration and set any test parameters
|
20
|
-
|
19
|
+
def create_configuration
|
20
|
+
Configuration.new(http_callback: HttpResponseCatcher.new)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Initializes the base test controller
|
24
|
+
def setup_class
|
25
|
+
_config = create_configuration
|
26
|
+
@client = Client.new(config: _config)
|
27
|
+
end
|
21
28
|
end
|
@@ -8,8 +8,9 @@ require_relative 'controller_test_base'
|
|
8
8
|
class SimpleCalculatorControllerTests < ControllerTestBase
|
9
9
|
# Called only once for the class before any test has executed
|
10
10
|
def setup
|
11
|
-
|
12
|
-
@controller =
|
11
|
+
setup_class
|
12
|
+
@controller = @client.simple_calculator
|
13
|
+
@response_catcher = @controller.http_call_back
|
13
14
|
end
|
14
15
|
|
15
16
|
# Check if multiplication works
|