module StandardAPI::TestCase

Public Class Methods

included(klass) click to toggle source
# File lib/standard_api/test_case.rb, line 12
def self.included(klass)
  model_class_name = klass.controller_class.name.gsub(/Controller$/, '').singularize

  [:filters, :orders, :includes].each do |attribute|
    klass.send(:class_attribute, attribute)
  end
  if defined?(model_class_name.constantize)
    model_class = model_class_name.constantize
    klass.send(:filters=, model_class.attribute_names)
    klass.send(:orders=, model_class.attribute_names)
    klass.send(:includes=, model_class.reflect_on_all_associations.map(&:name))
  end
  
  klass.extend(ClassMethods)

  klass.controller_class.action_methods.each do |action|
    klass.include("StandardAPI::TestCase::#{action.capitalize}Tests".constantize)
  end
end

Public Instance Methods

create_model(attrs={}) click to toggle source
# File lib/standard_api/test_case.rb, line 36
def create_model(attrs={})
  create(model.name.underscore, attrs)
end
create_webmocks(attributes) click to toggle source
# File lib/standard_api/test_case.rb, line 48
def create_webmocks(attributes)
  attributes.each do |attribute, value|
    validators = self.class.model.validators_on(attribute)
  end
end
model() click to toggle source
# File lib/standard_api/test_case.rb, line 32
def model
  self.class.model
end
normalize_attribute(attribute, value) click to toggle source
# File lib/standard_api/test_case.rb, line 54
def normalize_attribute(attribute, value)
  validators = self.class.model.validators_on(attribute)
  value
end
normalize_to_json(attribute, value) click to toggle source
# File lib/standard_api/test_case.rb, line 59
def normalize_to_json(attribute, value)
  value = normalize_attribute(attribute, value)
    
  return nil if value.nil?

  if model.column_types[attribute].is_a?(ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Decimal)
    "#{value}"
  elsif model.column_types[attribute].is_a?(ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter)
    value.to_datetime.utc.iso8601.gsub(/\+00:00$/, 'Z')
  else
    value
  end
end
plural_name() click to toggle source
# File lib/standard_api/test_case.rb, line 44
def plural_name
  model.model_name.plural
end
singular_name() click to toggle source
# File lib/standard_api/test_case.rb, line 40
def singular_name
  model.model_name.singular
end