class NEC::MockServer::Router

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

Constants

CONTENT_TYPES
DEFAULT_APPLICATION_NAME
DEFAULT_HEADER
JSON_HEADER

Public Class Methods

new(application_name) click to toggle source

The method create new instance of router

@param [String] application_name

# File lib/nec_mock_server/mock_server.rb, line 176
def initialize(application_name)
  @application_name = application_name || DEFAULT_APPLICATION_NAME
end

Public Instance Methods

error(body, headers = DEFAULT_HEADER) click to toggle source

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

@param [Object] body Body of response @param [Hash] headers Headers of response

@return [Array] response_data

# 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) click to toggle source

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

@param [Object] body Body of response @param [Hash] headers Headers of response

@return [Array] response_data

# File lib/nec_mock_server/mock_server.rb, line 254
def exception(body, headers = DEFAULT_HEADER)
  prepare_response_data(400, headers, body)
end
home() click to toggle source

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

# File lib/nec_mock_server/mock_server.rb, line 202
def home
  ok(@application_name)
end
no_registered_awid(tid, awid) click to toggle source

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

@param [String] tid @param [String] awid

# 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) click to toggle source

The method represent base not found response, 404 Not Found

@param [String] resource Resource is required route part, which was no defined.

@return [Array] response_data

# 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) click to toggle source

The method represent base success response, 200 OK

@param [Object] body Body of response @param [Hash] headers Headers of response

@return [Array] response_data

# 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) click to toggle source

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

@param [Hash] parts All parts find by specified matcher of URL request @param [String] request_data Received data by request @param [Hash] identity

# 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

Private Instance Methods

prepare_response_data(http_code, headers, body) click to toggle source

The method prepare response data as Array

@param [String] http_code @param [Hash] headers @param [Object] body

@param [Array] response_data

# File lib/nec_mock_server/mock_server.rb, line 268
def prepare_response_data(http_code, headers, body)
  body = body.nil? ? '' : body
  body = body.to_json if body.is_a?(Hash)
  body = body.to_s unless body.is_a?(String)

  [http_code, headers.nil? ? DEFAULT_HEADER : headers, [body]]
end