require File.dirname(__FILE__) + '/test_helper' describe 'Braid::Config, when empty' do before(:each) do @config = Braid::Config.new('tmp.yml') end after(:each) do FileUtils.rm('tmp.yml') rescue nil end it 'should not get a mirror by name' do @config.get('path').should be_nil lambda { @config.get!('path') }.should raise_error(Braid::Config::MirrorDoesNotExist) end it 'should add a mirror and its params' do @mirror = build_mirror @config.add(@mirror) @config.get('path').path.should_not be_nil end end describe 'Braid::Config, with one mirror' do before(:each) do @config = Braid::Config.new('tmp.yml') @mirror = build_mirror @config.add(@mirror) end after(:each) do FileUtils.rm('tmp.yml') rescue nil end it 'should get the mirror by name' do @config.get('path').should == @mirror @config.get!('path').should == @mirror end it 'should raise when trying to overwrite a mirror on add' do lambda { @config.add(@mirror) }.should raise_error(Braid::Config::PathAlreadyInUse) end it 'should remove the mirror' do @config.remove(@mirror) @config.get('path').should be_nil end it 'should update the mirror with new params' do @mirror.branch = 'other' @config.update(@mirror) @config.get('path').attributes.should == {'branch' => 'other'} end it 'should raise when trying to update nonexistent mirror' do @mirror.instance_variable_set('@path', 'other') lambda { @config.update(@mirror) }.should raise_error(Braid::Config::MirrorDoesNotExist) end end