class Drntest::ResponsesNormalizer

Constants

DUMP_TYPE_ORDER
SYSTEM_ABSORB_DATA_ORDER

Public Class Methods

new(request, responses) click to toggle source
# File lib/drntest/responses-normalizer.rb, line 18
def initialize(request, responses)
  @request = request
  @responses = responses
end

Public Instance Methods

normalize() click to toggle source
# File lib/drntest/responses-normalizer.rb, line 23
def normalize
  if dump_command?
    normalize_dump_responses
  elsif system_absorb_data_command?
    normalize_system_absorb_data_responses
  else
    @responses 
  end
end

Private Instance Methods

dump_command?() click to toggle source
# File lib/drntest/responses-normalizer.rb, line 34
def dump_command?
  @request["type"] == "dump"
end
normalize_dump_responses() click to toggle source
# File lib/drntest/responses-normalizer.rb, line 47
def normalize_dump_responses
  @responses.sort_by do |response|
    if response["error"] and response["response"]
      response = response["response"]
    end
    type = response["type"]
    type_order = DUMP_TYPE_ORDER.index(type) || -1
    body = response["body"]
    case type
    when "dump.forecast"
      body_order = body["nMessages"]
    when "dump.table"
      body_order = body["name"]
    when "dump.column"
      body_order = "#{body['table']}.#{body['name']}"
    when "dump.record"
      body_order = "#{body['table']}.#{body['key']}"
    else
      body_order = ""
    end
    [type_order, body_order]
  end
end
normalize_system_absorb_data_responses() click to toggle source
# File lib/drntest/responses-normalizer.rb, line 81
def normalize_system_absorb_data_responses
  @responses.sort_by do |response|
    if response["error"] and response["response"]
      response = response["response"]
    end
    type = response["type"]
    type_order = SYSTEM_ABSORB_DATA_ORDER.index(type) || -1
    body = response["body"]
    case type
    when "system.absorb.progress"
      body_order = body["nProcessedMessages"]
    else
      body_order = ""
    end
    [type_order, body_order]
  end
end
system_absorb_data_command?() click to toggle source
# File lib/drntest/responses-normalizer.rb, line 71
def system_absorb_data_command?
  @request["type"] == "system.absorb-data"
end