module StandardAPI::TestCase::ClassMethods

Public Class Methods

extended(klass) click to toggle source
# File lib/standard_api/test_case.rb, line 156
def self.extended(klass)
  klass.instance_variable_set('@normalizers', {})
end

Public Instance Methods

controller_class() click to toggle source
# File lib/standard_api/test_case.rb, line 160
def controller_class
  controller_class_name = self.name.gsub(/Test$/, '')
  controller_class_name.constantize
rescue NameError => e
  raise e if e.message != "uninitialized constant #{controller_class_name}"
end
model() click to toggle source
# File lib/standard_api/test_case.rb, line 175
def model
  return @model if defined?(@model) && @model

  klass_name = controller_class.name.gsub(/Controller$/, '').singularize

  begin
    @model = klass_name.constantize
  rescue NameError
    raise e unless e.message =~ /uninitialized constant #{klass_name}/
  end

  if @model.nil?
    raise "@model is nil: make sure you set it in your test using `self.model = ModelClass`."
  else
    @model
  end
end
model=(val) click to toggle source
# File lib/standard_api/test_case.rb, line 167
def model=(val)
  @model = val
  self.filters = val.attribute_names
  self.orders = val.attribute_names
  self.includes = val.reflect_on_all_associations.map(&:name)
  @model
end
normalize(*attributes, &block) click to toggle source
# File lib/standard_api/test_case.rb, line 193
def normalize(*attributes, &block)
  attributes.each do |attribute|
    @normalizers[model] ||= {}
    @normalizers[model][attribute] = block
  end
end