|
|
|
|
|
require File.dirname(__FILE__) + '/../spec_helper'
|
|
|
|
|
|
describe Configuration, "when using cache" do
|
|
|
|
|
|
before(:each) do
|
|
|
Configuration.cache = true
|
|
|
@int_config = mock(Configuration,
|
|
|
:id => 1,
|
|
|
:key => 'mode',
|
|
|
:value_type => 'integer',
|
|
|
:value => '30')
|
|
|
|
|
|
@string_config = mock(Configuration,
|
|
|
:id => 2,
|
|
|
:key => 'title',
|
|
|
:value_type => 'string',
|
|
|
:value => 'Hello')
|
|
|
|
|
|
@boolean_config = mock(Configuration,
|
|
|
:id => 3,
|
|
|
:key => 'single_user_mode',
|
|
|
:value_type => 'boolean',
|
|
|
:value => 'true')
|
|
|
end
|
|
|
|
|
|
after(:each) do
|
|
|
Configuration.cache = false
|
|
|
end
|
|
|
|
|
|
it "should retrieve int config" do
|
|
|
Configuration.should_receive(:find).once.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration.get('mode')
|
|
|
val.should == 30
|
|
|
end
|
|
|
|
|
|
it "should retrieve boolean config" do
|
|
|
Configuration.should_receive(:find).once.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration.get('single_user_mode')
|
|
|
val.should == true
|
|
|
end
|
|
|
|
|
|
it "should retrieve string config" do
|
|
|
Configuration.should_receive(:find).once.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration.get('title')
|
|
|
val.should == "Hello"
|
|
|
end
|
|
|
|
|
|
it "should retrieve config with []" do
|
|
|
Configuration.should_receive(:find).once.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration['title']
|
|
|
val.should == "Hello"
|
|
|
end
|
|
|
|
|
|
it "should read config table once" do
|
|
|
Configuration.should_receive(:find).once.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration.get('title')
|
|
|
val.should == "Hello"
|
|
|
val = Configuration.get('single_user_mode')
|
|
|
val.should == true
|
|
|
val = Configuration.get('mode')
|
|
|
val.should == 30
|
|
|
end
|
|
|
|
|
|
it "should be able to reload config" do
|
|
|
Configuration.should_receive(:find).twice.with(:all).
|
|
|
and_return([@int_config, @string_config, @boolean_config],
|
|
|
[mock(Configuration,
|
|
|
:key => 'title', :value_type => 'string',
|
|
|
:value => 'Goodbye')])
|
|
|
|
|
|
Configuration.clear
|
|
|
val = Configuration.get('title')
|
|
|
val.should == "Hello"
|
|
|
Configuration.reload
|
|
|
val = Configuration.get('title')
|
|
|
val.should == "Goodbye"
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|