test/unit/utils_test.rb in hammer_cli-0.1.1 vs test/unit/utils_test.rb in hammer_cli-0.1.2

- old
+ new

@@ -1,8 +1,15 @@ require File.join(File.dirname(__FILE__), 'test_helper') +module Constant + module Test + class X + end + end +end + describe String do context "formatting" do let(:str) { "AA%<a>s BB%<b>s" } @@ -54,10 +61,39 @@ "line one\nline two".indent_with(" ").must_equal " line one\n line two" end end + describe "constantize" do + + it "raises NameError for empty string" do + proc { + "".constantize + }.must_raise NameError + end + + it "raises NameError for unknown constant" do + proc { + "UnknownClass".constantize + }.must_raise NameError + end + + it "returns correct constant" do + "Object".constantize.must_equal Object + end + + it "returns correct namespaced constant" do + "Constant::Test::X".constantize.must_equal Constant::Test::X + end + end + +end + + + +describe HammerCLI do + describe "interactive?" do before :each do @tty = STDOUT.tty? STDOUT.stubs(:'tty?').returns(true) @@ -84,9 +120,31 @@ it "should by false when turned off in cfg" do HammerCLI::Settings.load({ :ui => { :interactive => false }, :_params => { :interactive => nil } }) HammerCLI::interactive?.must_equal false + end + end + + + describe "constant_path" do + + it "returns empty array for empty string" do + HammerCLI.constant_path("").must_equal [] + end + + it "raises NameError for unknown constant" do + proc { + HammerCLI.constant_path("UnknownClass") + }.must_raise NameError + end + + it "returns single constant" do + HammerCLI.constant_path("Object").must_equal [Object] + end + + it "returns correct path for namespaced constant" do + HammerCLI.constant_path("Constant::Test::X").must_equal [Constant, Constant::Test, Constant::Test::X] end end end