require 'factory_girl' Factory.sequence(:connection_name) { |n| "Connection #{n}" } Factory.define :connection, :class => Coupler::Models::Connection do |c| c.name { Factory.next(:connection_name) } c.adapter "h2" end Factory.sequence(:resource_name) { |n| "Resource #{n}" } Factory.define :resource, :class => Coupler::Models::Resource do |r| r.name { Factory.next(:resource_name) } r.table_name "people" r.association :connection r.association :project end Factory.define :project, :class => Coupler::Models::Project do |d| d.sequence(:name) { |n| "Project #{n}" } end Factory.define :transformation, :class => Coupler::Models::Transformation do |t| t.association :transformer t.association :resource t.source_field do |record| record.resource.fields_dataset.first rescue nil end end Factory.define :scenario, :class => Coupler::Models::Scenario do |s| s.sequence(:name) { |n| "Scenario #{n}" } s.association :project s.resource_1 { |x| x.project ? Factory(:resource, :project => x.project) : nil } end Factory.define :matcher, :class => Coupler::Models::Matcher do |m| m.association :scenario m.comparisons_attributes do |record| resources = record.scenario.resources [{ 'lhs_type' => 'field', 'raw_lhs_value' => resources[0].fields_dataset.order('id DESC').last.id, 'lhs_which' => 1, 'rhs_type' => 'field', 'raw_rhs_value' => resources[-1].fields_dataset.order('id DESC').last.id, 'rhs_which' => 2, 'operator' => 'equals' }] end end Factory.define :result, :class => Coupler::Models::Result do |r| r.association :scenario end Factory.define :resource_job, :class => Coupler::Models::Job do |j| j.name 'transform' j.status 'scheduled' j.association :resource end Factory.define :scenario_job, :class => Coupler::Models::Job do |j| j.name 'run_scenario' j.status 'scheduled' j.association :scenario end Factory.define :transformer, :class => Coupler::Models::Transformer do |t| t.sequence(:name) { |n| "Transformer #{n}" } t.code "value" t.allowed_types { |x| %w{string integer datetime} } t.result_type "same" end Factory.define :field, :class => Coupler::Models::Field do |f| f.sequence(:name) { |n| "field_#{n}" } f.add_attribute :type, "integer" f.db_type "int(11)" f.is_primary_key 0 f.is_selected 1 f.association :resource end Factory.define :comparison, :class => Coupler::Models::Comparison do |c| c.association :matcher c.lhs_type "integer" c.raw_lhs_value 1 c.rhs_type "integer" c.raw_rhs_value 1 c.operator "equals" end Factory.define :import, :class => Coupler::Models::Import do |i| i.data { File.open(File.join(File.dirname(__FILE__), 'fixtures', 'people.csv')) } i.association :project end