require 'spec_helper' describe Dicer::Context do let(:context) { Dicer::Context.new } let(:controller) { ActionController::Base.new } describe '.current' do subject { described_class.current } it { should be_nil } context 'when set current context' do before(:all) do described_class.current = context end it { should == context } context 'in another thread' do around {|e| Thread.new(e) {|e| e.run }.join } it { should_not == context } end end end describe '.current_controller' do subject { described_class.current_controller } it { should be_nil } context 'when set current controller' do before(:all) do described_class.current_controller = controller end it { should == controller } context 'when another thread' do around {|e| Thread.new(e) {|e| e.run }.join } it { should_not == controller } end end end describe '#controller' do before { described_class.current_controller = controller } subject { context.controller } it { should == controller } end describe '#request' do let(:request) { mock } before do controller.request = request described_class.current_controller = controller end subject { context.request } it { should == request } end describe '#params' do let(:params) { mock } before do controller.params = params described_class.current_controller = controller end subject { context.params } it { should == params } end describe '#cookies' do let(:cookies) { mock } before do controller.request = mock(:cookie_jar => cookies) described_class.current_controller = controller end subject { context.cookies } it { should == cookies } end describe '#session' do let(:session) { mock } before do controller.request = mock(:session => session) described_class.current_controller = controller end subject { context.session } it { should == session } end end