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