Module: StandardAPI::TestCase::ClassMethods

Defined in:
lib/standard_api/test_case.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



146
147
148
# File 'lib/standard_api/test_case.rb', line 146

def self.extended(klass)
  klass.instance_variable_set('@normalizers', {})
end

Instance Method Details

#controller_classObject



150
151
152
153
154
155
# File 'lib/standard_api/test_case.rb', line 150

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

#modelObject



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/standard_api/test_case.rb', line 165

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) ⇒ Object



157
158
159
160
161
162
163
# File 'lib/standard_api/test_case.rb', line 157

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) ⇒ Object



183
184
185
186
187
188
# File 'lib/standard_api/test_case.rb', line 183

def normalize(*attributes, &block)
  attributes.each do |attribute|
    @normalizers[model] ||= {}
    @normalizers[model][attribute] = block
  end
end