Class: NEC::MockServer::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/nec_mock_server/mock_server.rb

Overview

Class represents all routes that application can served. For customize own mock application is necessary to create own router class by inheritance of this class

Constant Summary collapse

DEFAULT_APPLICATION_NAME =
"Mock Server"
CONTENT_TYPES =
{
    text: {
        plain: "text/plain"
    },
    application: {
        json: "application/json"
    }
}
DEFAULT_HEADER =
{"Content-Type" => CONTENT_TYPES[:text][:plain]}
JSON_HEADER =
{"Content-Type" => CONTENT_TYPES[:application][:json]}

Instance Method Summary collapse

Constructor Details

#initialize(application_name) ⇒ Router

The method create new instance of router

Parameters:

  • application_name (String)


176
177
178
# File 'lib/nec_mock_server/mock_server.rb', line 176

def initialize(application_name)
  @application_name = application_name || DEFAULT_APPLICATION_NAME
end

Instance Method Details

#error(body, headers = DEFAULT_HEADER) ⇒ Array

The method represent base server error response, 500 Internal Server Error

Parameters:

  • body (Object)

    Body of response

  • headers (Hash) (defaults to: DEFAULT_HEADER)

    Headers of response

Returns:

  • (Array)

    response_data



243
244
245
# File 'lib/nec_mock_server/mock_server.rb', line 243

def error(body, headers = DEFAULT_HEADER)
  prepare_response_data(500, headers, body)
end

#exception(body, headers = DEFAULT_HEADER) ⇒ Array

The method represent base server error response, 400 Internal Server Error

Parameters:

  • body (Object)

    Body of response

  • headers (Hash) (defaults to: DEFAULT_HEADER)

    Headers of response

Returns:

  • (Array)

    response_data



254
255
256
# File 'lib/nec_mock_server/mock_server.rb', line 254

def exception(body, headers = DEFAULT_HEADER)
  prepare_response_data(400, headers, body)
end

#homeObject

The method represent default home route on “/” or “” Return 200 OK a and #application_name



202
203
204
# File 'lib/nec_mock_server/mock_server.rb', line 202

def home
  ok(@application_name)
end

#no_registered_awid(tid, awid) ⇒ Object

The method represent specific not found response for request on no registered pair tid-awid

Parameters:

  • tid (String)
  • awid (String)


232
233
234
# File 'lib/nec_mock_server/mock_server.rb', line 232

def no_registered_awid(tid, awid)
  prepare_response_data(404, DEFAULT_HEADER, "Mock Server has no registered TID-AWID '#{tid}-#{awid}' for #{@application_name}")
end

#not_found(resource) ⇒ Array

The method represent base not found response, 404 Not Found

Parameters:

  • resource (String)

    Resource is required route part, which was no defined.

Returns:

  • (Array)

    response_data



223
224
225
# File 'lib/nec_mock_server/mock_server.rb', line 223

def not_found(resource)
  prepare_response_data(404, DEFAULT_HEADER, "Undefined Mock Server resource '#{resource}' for #{@application_name}")
end

#ok(body = nil, headers = DEFAULT_HEADER) ⇒ Array

The method represent base success response, 200 OK

Parameters:

  • body (Object) (defaults to: nil)

    Body of response

  • headers (Hash) (defaults to: DEFAULT_HEADER)

    Headers of response

Returns:

  • (Array)

    response_data



213
214
215
# File 'lib/nec_mock_server/mock_server.rb', line 213

def ok(body = nil, headers = DEFAULT_HEADER)
  prepare_response_data(200, headers, body)
end

#route(parts, request_data, identity = nil) ⇒ Object

The method process all operation on defined request URL and return response data

Parameters:

  • parts (Hash)

    All parts find by specified matcher of URL request

  • request_data (String)

    Received data by request

  • identity (Hash) (defaults to: nil)


186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/nec_mock_server/mock_server.rb', line 186

def route(parts, request_data, identity = nil)
  case parts[:resource]
    when "/", ""
      home
    when "/exception"
      exception("Application exception.")
    when "/error"
      error("Server exception.")
    else
      not_found(parts[:resource])
  end
end