Sha256: 6ff057b34871ed5c6ff4b2574ee1f5e7470094b4fc2b8fb4fb5471d441076149

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'

class DislikeSpec < MiniTest::Spec
  describe Recommendable::Dislike do
    before :each do
      @user = User.create(:username => "dave")
    end
    
    it "should not be created for an object that does not act_as_recommendedable" do
      django = PhpFramework.create(:name => "django")
      proc { @user.dislike(django) }.must_raise Recommendable::UnrecommendableError
    end
    
    it "should be created for an object that does act_as_recommendable" do
     movie = Movie.create(:title => "Star Wars: Episode I - The Phantom Menace", :year => 1999)
     @user.dislike(movie).must_equal true
    end
    
    it "should not be created twice for the same user-object pair" do
      movie = Movie.create(:title => "Star Wars: Episode I - The Phantom Menace", :year => 1999)
      
      @user.dislike(movie).must_equal true
      @user.dislike(movie).must_be_nil
      Recommendable::Dislike.count.must_equal 1
    end

    it "should cache the number of dislikes" do
      movie = Movie.create(:title => "Star Wars: Episode I - The Phantom Menace", :year => 1999)
      @user2 = User.create(:username => "frank")

      @user.dislike(movie)
      movie.dislike_count.must_equal 1

      @user2.dislike(movie)
      movie.dislike_count.must_equal 2

      @user.undislike(movie)
      movie.dislike_count.must_equal 1
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
recommendable-1.1.7 spec/models/dislike_spec.rb
recommendable-1.1.6 spec/models/dislike_spec.rb
recommendable-1.1.5 spec/models/dislike_spec.rb
recommendable-1.1.4 spec/models/dislike_spec.rb