diff --git a/Gemfile b/Gemfile index e8fa2abef..3fcda913b 100644 --- a/Gemfile +++ b/Gemfile @@ -16,6 +16,7 @@ group :test do gem 'webrat' gem 'redgreen' gem 'autotest' + gem 'factory_girl_rails' end group :development do diff --git a/app/models/status_message.rb b/app/models/status_message.rb index c0b27d87c..989024dc1 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -6,7 +6,7 @@ class StatusMessage xml_accessor :message xml_accessor :owner - + field :message field :owner @@ -15,6 +15,7 @@ class StatusMessage before_create :add_owner def self.newest(owner_email) + StatusMessage.last(:conditions => {:owner => owner_email}) end diff --git a/spec/factories.rb b/spec/factories.rb new file mode 100644 index 000000000..ca8c54483 --- /dev/null +++ b/spec/factories.rb @@ -0,0 +1,17 @@ +#For Guidance +#http://github.com/thoughtbot/factory_girl +#http://railscasts.com/episodes/158-factories-not-fixtures +Factory.define :friend do |f| + f.username 'max' + f.url 'http://max.com/' +end + +Factory.define :status_message do |m| + m.sequence(:message) {|n| "jimmy's #{n} whales"} + +end + +Factory.define :user do |u| + u.sequence(:email) {|n| "bob#{n}@aol.com"} + u.password "bluepin7" +end diff --git a/spec/models/friend_spec.rb b/spec/models/friend_spec.rb index 1a6345435..b76371aaa 100644 --- a/spec/models/friend_spec.rb +++ b/spec/models/friend_spec.rb @@ -1,10 +1,11 @@ require File.dirname(__FILE__) + '/../spec_helper' describe Friend do - it 'should have a diaspora username and diaspora url' do - n = Friend.new(:username => 'max') + it 'should have a diaspora username and diaspora url' do + n = Factory.build(:friend, :url => nil) + #n = Friend.new(:username => 'max') n.valid?.should be false n.url = "http://max.com/" n.valid?.should be true end -end \ No newline at end of file +end diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index d20cb6188..f2f293cd9 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -1,38 +1,34 @@ require File.dirname(__FILE__) + '/../spec_helper' describe StatusMessage do + before do + @usr = Factory.create(:user,:email => "bob@aol.com", :password => "diggity") + end it "should have a message" do - n = StatusMessage.new + n = Factory.build(:status_message, :message => nil) n.valid?.should be false n.message = "wales" n.valid?.should be true end it "should add an owner if none is present" do - User.create(:email => "bob@aol.com", :password => "big bux") - n = StatusMessage.create(:message => "puppies!") + n = Factory.create(:status_message) n.owner.should == "bob@aol.com" end - - + describe "newest" do before do - User.create(:email => "bob@aol.com", :password => "diggity") - StatusMessage.create(:message => "wale for jimmy", :owner => "xzibit@dawgz.com") - StatusMessage.create(:message => "jimmy wales") - StatusMessage.create(:message => "jimmy your wales", :owner => "some@dudes.com") - StatusMessage.create(:message => "lions", :owner => "xzibit@dawgz.com") - StatusMessage.create(:message => "bears") - StatusMessage.create(:message => "sharks", :owner => "some@dudes.com") - StatusMessage.create(:message => "roar") + (1..5).each { Factory.create(:status_message, :owner => "some@dudes.com") } + (6..10).each { Factory.create(:status_message) } end - + it "should give the most recent message from owner" do - StatusMessage.my_newest.message.should == "roar" + #puts StatusMessage.newest("sam@cool.com") + StatusMessage.my_newest.message.should == "jimmy's 11 whales" end it "should give the most recent message for a given email" do - StatusMessage.newest("some@dudes.com").message.should == "sharks" + StatusMessage.newest("some@dudes.com").message.should == "jimmy's 16 whales" end end @@ -42,7 +38,7 @@ describe StatusMessage do end it 'should serialize to XML' do - message = StatusMessage.create(:message => "I hate WALRUSES!", :owner => "Bob") + message = Factory.create(:status_message, :message => "I hate WALRUSES!", :owner => "Bob") message.to_xml.to_s.should == @xml end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3a28cedfd..dbfcae118 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,6 +3,7 @@ ENV["RAILS_ENV"] ||= 'test' require File.dirname(__FILE__) + "/../config/environment" unless defined?(Rails) require 'rspec/rails' +#require File.dirname(__FILE__) + "/factories" include Devise::TestHelpers # Requires supporting files with custom matchers and macros, etc,