Module: StandardAPI::TestCase

Defined in:
lib/standard_api/test_case.rb,
lib/standard_api/test_case/show_tests.rb,
lib/standard_api/test_case/index_tests.rb,
lib/standard_api/test_case/create_tests.rb,
lib/standard_api/test_case/update_tests.rb,
lib/standard_api/test_case/destroy_tests.rb,
lib/standard_api/test_case/calculate_tests.rb

Defined Under Namespace

Modules: CalculateTests, ClassMethods, CreateTests, DestroyTests, IndexTests, ShowTests, UpdateTests

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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

Instance Method Details

#create_model(attrs = {}) ⇒ Object



36
37
38
# File 'lib/standard_api/test_case.rb', line 36

def create_model(attrs={})
  create(model.name.underscore, attrs)
end

#create_webmocks(attributes) ⇒ Object



48
49
50
51
52
# 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

#modelObject



32
33
34
# File 'lib/standard_api/test_case.rb', line 32

def model
  self.class.model
end

#normalize_attribute(attribute, value) ⇒ Object



54
55
56
57
# 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) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
# 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_nameObject



44
45
46
# File 'lib/standard_api/test_case.rb', line 44

def plural_name
  model.model_name.plural
end

#singular_nameObject



40
41
42
# File 'lib/standard_api/test_case.rb', line 40

def singular_name
  model.model_name.singular
end