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