factories.rb 2.84 KB
Factory.define(:question) do |f|
  f.sequence(:name) { |i| "Name #{i}" }
  f.site {|s| s.association(:user)}
  f.creator {|c| c.association(:visitor, :site => c.site)}
end
Factory.define(:aoi_question, :parent => :question) do |f|
  f.sequence(:name) { |i| "Name #{i}" }
  f.association :site, :factory => :user
  f.creator {|c| c.association(:visitor, :site => c.site)}
  f.choices do |question|
	      result = []
	      2.times do 
		result << Factory.build(:choice, 
					:question => question.result,
					:creator => question.creator,
					:active => true)
	      end
	      2.times do 
		      result << Factory.build(:choice, 
					  :question => question.result,
					  :creator => question.creator,
					  :active => false)
	      end
	     result
	    end
  f.prompts do |question|
	      result = []
	      1.times do 
		result << Factory.build(:prompt, 
					:question => question.result,
					:left_choice => question.choices.first,
					:right_choice => question.choices.second)

		result << Factory.build(:prompt, 
					:question => question.result,
					:left_choice => question.choices.third,
					:right_choice => question.choices.fourth)

	      end
	     result
	    end
end

Factory.define(:visitor) do |f|
  f.sequence(:identifier) { |i| "Identifier #{i}" }
  f.association :site, :factory => :user
end

Factory.define(:prompt) do |f|
  f.sequence(:tracking) { |i| "Prompt we're calling #{i}" }
end

Factory.define(:choice) do |f|
  f.sequence(:data) { |i| "Choice: #{i}" }
  f.association :question
  f.creator {|c| c.association(:visitor, :site => c.question.site)}
end

Factory.define(:choice_new_user, :parent => :choice) do |f|
  f.creator {|c| Factory.build(:visitor, :site => c.question.site)}
end

Factory.define(:vote) do |f|
  f.association :question, :factory => :aoi_question
  f.prompt {|v|  v.question.prompts.first}
  f.choice {|v|  v.prompt.left_choice}
  f.loser_choice {|v|  v.prompt.right_choice}
  f.voter {|v|  v.question.creator}
  f.appearance { |v| Factory.build(:appearance, :voter => v.voter, :question => v.question) }
end

Factory.define(:vote_new_user, :parent => :vote) do |f|
  f.voter {|v| Factory.build(:visitor, :site => v.question.site)}
end

Factory.define(:skip) do |f|
  f.association :question, :factory => :aoi_question
  f.appearance { |v| Factory.build(:appearance, :question => v.question) }
  f.prompt {|s|  s.question.prompts.first}
  f.skipper {|s|  s.question.creator}
end
Factory.define(:skip_new_user, :parent => :skip) do |f|
  f.skipper {|a| Factory.build(:visitor, :site => a.question.site)}
end

Factory.define(:appearance) do |f|
  f.association :question, :factory => :aoi_question
  f.prompt {|a| a.question.prompts.sample}
  f.voter {|a| a.question.creator}
  f.answerable { nil }
end

Factory.define(:appearance_new_user, :parent => :appearance) do |f|
  f.voter {|a| Factory.build(:visitor, :site => a.question.site)}
end