spec/strategy_set_spec.rb in govkit-ca-0.0.6 vs spec/strategy_set_spec.rb in govkit-ca-0.0.7
- old
+ new
@@ -1,5 +1,58 @@
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
-module GovKit::CA::PostalCode::StrategySet
- # @todo
+describe GovKit::CA::PostalCode::StrategySet do
+ let :strategy do
+ Class.new
+ end
+
+ describe '#strategies' do
+ it 'should return the strategies' do
+ GovKit::CA::PostalCode::StrategySet.strategies[0..4].should == [
+ GovKit::CA::PostalCode::Strategy::ElectionsCa,
+ GovKit::CA::PostalCode::Strategy::NDPCa,
+ # GovKit::CA::PostalCode::Strategy::LiberalCa,
+ GovKit::CA::PostalCode::Strategy::GreenPartyCa,
+ GovKit::CA::PostalCode::Strategy::CBCCa,
+ GovKit::CA::PostalCode::Strategy::ConservativeCa,
+ ]
+ end
+ end
+
+ describe '#register' do
+ it 'should append a strategy' do
+ GovKit::CA::PostalCode::StrategySet.register(strategy)
+ GovKit::CA::PostalCode::StrategySet.strategies.last.should == strategy
+ end
+ end
+
+ describe '#run' do
+ it 'should run the strategies' do
+ GovKit::CA::PostalCode::StrategySet.run('A1A1A1').should == [10007]
+ end
+ end
+
+ context 'with empty strategy set' do
+ before :each do
+ GovKit::CA::PostalCode::StrategySet.strategies.clear
+ end
+
+ describe '#strategies' do
+ it 'should return the strategies' do
+ GovKit::CA::PostalCode::StrategySet.strategies.should == []
+ end
+ end
+
+ describe '#register' do
+ it 'should add a strategy' do
+ GovKit::CA::PostalCode::StrategySet.register(strategy)
+ GovKit::CA::PostalCode::StrategySet.strategies.should == [strategy]
+ end
+ end
+
+ describe '#run' do
+ it 'should raise an error' do
+ expect{GovKit::CA::PostalCode::StrategySet.run('A1A1A1')}.to raise_error(GovKit::CA::ResourceNotFound)
+ end
+ end
+ end
end