From 0d9c7e50de18087ffdb08f88fab98f84dd1e07b2 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 16 Jan 2009 15:54:14 -0800 Subject: [PATCH] Added specs for the Rate#for parameter. #1920 --- app/models/rate.rb | 4 ++++ spec/models/rate_spec.rb | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/app/models/rate.rb b/app/models/rate.rb index a0d2f3e..7dfccb3 100644 --- a/app/models/rate.rb +++ b/app/models/rate.rb @@ -23,4 +23,8 @@ class Rate < ActiveRecord::Base def unlocked? return !self.locked? end + + # API to find the Rate for a +user+ on a +project+ at a +date+ + def self.for(user, project = nil, date = Date.today.to_s) + end end diff --git a/spec/models/rate_spec.rb b/spec/models/rate_spec.rb index 73beef6..a0b0a36 100644 --- a/spec/models/rate_spec.rb +++ b/spec/models/rate_spec.rb @@ -121,3 +121,28 @@ describe Rate, 'destroy' do }.should_not change(Rate, :count) end end + +describe Rate, 'for' do + describe 'parameters' do + before(:each) do + @user = mock_model(User) + @project = mock_model(Project) + @date = '2009-01-01' + end + + it 'should be passed user' do + lambda {Rate.for}.should raise_error(ArgumentError) + end + + it 'can be passed an optional project' do + lambda {Rate.for(@user)}.should_not raise_error(ArgumentError) + lambda {Rate.for(@user, @project)}.should_not raise_error(ArgumentError) + end + + it 'can be passed an optional date string' do + lambda {Rate.for(@user)}.should_not raise_error(ArgumentError) + lambda {Rate.for(@user, nil, @date)}.should_not raise_error(ArgumentError) + end + + end +end