test/alias_test.rb in cldwalker-alias-0.1.2 vs test/alias_test.rb in cldwalker-alias-0.2.0
- old
+ new
@@ -1,62 +1,63 @@
require File.join(File.dirname(__FILE__), 'test_helper.rb')
class AliasTest < Test::Unit::TestCase
- test "loads config file config/aliases.yml if found" do
- File.expects(:exists?).with('config/aliases.yml').returns(true)
- File.expects(:read).returns('')
- Alias.load_config_file
- end
-
- test "loads config file aliases.yml if found" do
- File.stubs(:exists?).returns(false, true)
- File.stubs(:read).returns('')
- Alias.load_config_file
- end
-
- test "loads given config file" do
- config = Alias.load_config_file(File.join(File.dirname(__FILE__),'aliases.yml'))
- assert config.is_a?(Hash)
- end
-
- test "returns hash if no config file found" do
- File.stubs(:exists?).returns(false)
- Alias.load_config_file.should == {}
- end
-
- context "Alias_init" do
- before(:each) { Alias.config = {}}
+ context "Alias" do
+ test "loads config file config/alias.yml if found" do
+ File.expects(:exists?).with('config/alias.yml').returns(true)
+ Alias.config_file.should == 'config/alias.yml'
+ end
+
+ context "create" do
+ before(:each) { Alias.instance_eval "@manager = @config = @config_file = nil"}
- test "with block sets config properly" do
- Alias.manager.expects(:create_aliases).times(2)
- Alias.init do |a|
- a.verbose = true
- a.constant = {'Blah'=>'B'}
- a.instance_method = {'String'=>{'to_s'=>'s'}}
+ test "with aliases option creates aliases" do
+ options = {:aliases=>{:constant=> {'Array'=>'Arr'}, :instance_method=>{'String'=>{'to_s'=>'s'}} } , :file=>false}
+ Alias.create options
+ Alias.manager.aliases_of(:instance_method).empty?.should be(false)
+ Alias.manager.aliases_of(:constant).empty?.should be(false)
+ Alias.config.should == options
end
- expected_config = {"instance_method"=>{"String"=>{"to_s"=>"s"}}, "constant"=>{"Blah"=>"B"}, "verbose"=>true}
- Alias.config.should == expected_config
- end
- test "creates manager object and non-empty aliases" do
- Alias.init :file=>File.join(File.dirname(__FILE__),'aliases.yml')
- Alias.manager.alias_map(:instance_method)
- Alias.manager.alias_map(:class_method)
- Alias.manager.alias_map(:constant)
- end
+ test "with file option creates aliases" do
+ Alias.create :file=>File.join(File.dirname(__FILE__),'aliases.yml')
+ Alias.manager.aliases_of(:instance_method).empty?.should be(false)
+ Alias.manager.aliases_of(:class_method).empty?.should be(false)
+ Alias.manager.aliases_of(:constant).empty?.should be(false)
+ Alias.manager.aliases_of(:class_to_instance_method).empty?.should be(false)
+ end
+
+ test "with false file option doesn't load config file" do
+ Alias.create :file=>'blah'
+ File.expects(:exists?).never
+ Alias.create :file=>false
+ end
+
+ test "with invalid file option creates nothing" do
+ Alias.create :file=>'blah'
+ Alias.config.should == {:aliases=>{}}
+ end
- test "with verbose option sets config and manager verbosity" do
- Alias.manager.stubs(:create_aliases)
- Alias.init :verbose=>true
- assert Alias.config['verbose']
- assert Alias.manager.verbose
+ test "with verbose option sets manager's verbose" do
+ Alias.manager.verbose.should == false
+ Alias.create :verbose=>true, :aliases=>{}, :file=>false
+ Alias.manager.verbose.should == true
+ end
+
+ test "with force option sets manager's verbose" do
+ Alias.manager.force.should == false
+ Alias.create :force=>true, :aliases=>{}
+ Alias.manager.force.should == true
+ end
+
+ test "called twice recursively merges config" do
+ hash1 = {:constant=>{"Blah"=>"B"}}
+ Alias.manager.expects(:create_aliases).with(:constant, hash1[:constant])
+ Alias.create :aliases=>hash1, :file=>false
+ hash2 = {:constant=>{"Blah2"=>"B2"}}
+ Alias.manager.expects(:create_aliases).with(:constant, hash2[:constant])
+ Alias.create :aliases=>hash2, :file=>false
+ Alias.config.should == {:aliases=>{:constant=>{"Blah"=>"B", "Blah2"=>"B2"}} }
+ end
end
-
- test "with no verbose option doesn't set config and manager verbosity" do
- Alias.manager.stubs(:create_aliases)
- assert Alias.manager.expects(:verbose=).never
- Alias.init
- assert Alias.config['verbose'].nil?
- end
end
-
-end
\ No newline at end of file
+end