|
|
|
|
|
require File.dirname(__FILE__) + '/../spec_helper'
|
|
|
|
|
|
describe Site do
|
|
|
|
|
|
before(:each) do
|
|
|
start_time = Time.local(2008,5,10,9,00).gmtime
|
|
|
@site = Site.new({:name => 'Test site',
|
|
|
:started => true,
|
|
|
:start_time => start_time })
|
|
|
@site.stub!(:start_time).
|
|
|
any_number_of_times.
|
|
|
and_return(start_time)
|
|
|
@site.stub!(:started).any_number_of_times.and_return(true)
|
|
|
end
|
|
|
|
|
|
it "should report that the contest is not finished when the contest time limit is not set" do
|
|
|
Configuration.should_receive(:[]).with('contest.time_limit').
|
|
|
and_return('unlimit')
|
|
|
@site.finished?.should == false
|
|
|
end
|
|
|
|
|
|
it "should report that the contest is finished when the contest is over" do
|
|
|
Configuration.should_receive(:[]).with('contest.time_limit').
|
|
|
and_return('5:00')
|
|
|
Time.stub!(:now).
|
|
|
and_return(Time.local(2008,5,10,14,01).gmtime)
|
|
|
@site.finished?.should == true end
|
|
|
|
|
|
it "should report if the contest is finished correctly, when the contest is over, and the contest time contains some minutes" do
|
|
|
Configuration.should_receive(:[]).twice.with('contest.time_limit').
|
|
|
and_return('5:15')
|
|
|
Time.stub!(:now).
|
|
|
and_return(Time.local(2008,5,10,14,14))
|
|
|
@site.finished?.should == false
|
|
|
Time.stub!(:now).
|
|
|
and_return(Time.local(2008,5,10,14,16))
|
|
|
@site.finished?.should == true
|
|
|
end
|
|
|
|
|
|
it "should report that the contest is not finished, when the time is exactly at the finish time" do
|
|
|
Configuration.should_receive(:[]).with('contest.time_limit').
|
|
|
and_return('5:00')
|
|
|
Time.stub!(:now).and_return(Time.local(2008,5,10,14,00))
|
|
|
@site.finished?.should == false
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|