class DataValidation::Comparison::DivRankingPrComparison

Public Instance Methods

api_path() click to toggle source
# File lib/data_validation/comparison/div_ranking_pr_comparison.rb, line 7
def api_path
  '/rest/LaxPower/divisionRankingPr'
end
compare() click to toggle source
# File lib/data_validation/comparison/div_ranking_pr_comparison.rb, line 19
def compare

  data_access = DataValidation::DataAccess.new(web_url, DataValidation.api_request_host + api_path, determine_request_body_and_logger_name)

  puts 'requesting web page...'
  web_data = data_access.get_main_table_data
  puts 'requesting mobile api data: ' + DataValidation.api_request_host + api_path
  api_data = data_access.get_response_from_mobile_api

  if web_data.length != api_data['results']['results']['total']
    logger.error "The record size between web page and api data is not the same: #{web_data.length} -- #{api_data['results']['results']['total']}"
    return
  end

  ## compare first table
  web_data.each_with_index do |item, index|
    team = api_data['results']['results']['teams'][index]

    i = 0
    field_array.each do |filed_name|

      if filed_name.is_a? String
        team_value = team[filed_name]
      elsif filed_name.is_a? Array
        team_value = team[filed_name[0]][filed_name[1]]
      else
        next
      end

      if item.length < field_array.length && empty_field && empty_field == filed_name ## when the field is possibly empty in the table
        logger.error "team #{item[0]}'s #{filed_name} is not empty: #{team_value}" unless (team_value == 0 || team_value.nil?)
        next
      end


      unless (team_value.is_a?(String) && team_value.include?(item[i])) ||
        (team_value.is_a?(Float) && compare_floats(team_value, item[i])) ||
        (team_value.is_a?(Integer) && team_value == item[i].to_i)

        logger.error "team #{item[0]}'s #{filed_name}: #{item[i]} -- #{team_value}"
      end

      i += 1
    end

  end

  ## compare standing tables
  compare_conf_standings(api_data, data_access)
end
conf_rank_api_url() click to toggle source
# File lib/data_validation/comparison/div_ranking_pr_comparison.rb, line 72
def conf_rank_api_url
  DataValidation.api_request_host + '/rest/LaxPower/conferenceRankingTable'
end
empty_field() click to toggle source
# File lib/data_validation/comparison/div_ranking_pr_comparison.rb, line 15
def empty_field
  ''
end
field_array() click to toggle source
# File lib/data_validation/comparison/div_ranking_pr_comparison.rb, line 11
def field_array
  ['rank', 'teamName', 'powerRating', 'regInPr', 'correction', 'championship', 'winLossTotal', %w|record wins|, %w|record losses|, %w|record ties|]
end