1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
require 'spec_helper'
require 'puppet/util/constant_inflector'
describe Puppet::Util::ConstantInflector, "when converting file names to constants" do
it "should capitalize terms" do
expect(subject.file2constant("file")).to eq("File")
end
it "should switch all '/' characters to double colons" do
expect(subject.file2constant("file/other")).to eq("File::Other")
end
it "should remove underscores and capitalize the proceeding letter" do
expect(subject.file2constant("file_other")).to eq("FileOther")
end
it "should correctly replace as many underscores as exist in the file name" do
expect(subject.file2constant("two_under_scores/with_some_more_underscores")).to eq("TwoUnderScores::WithSomeMoreUnderscores")
end
it "should collapse multiple underscores" do
expect(subject.file2constant("many___scores")).to eq("ManyScores")
end
it "should correctly handle file names deeper than two directories" do
expect(subject.file2constant("one_two/three_four/five_six")).to eq("OneTwo::ThreeFour::FiveSix")
end
end
describe Puppet::Util::ConstantInflector, "when converting constnats to file names" do
it "should convert them to a string if necessary" do
expect(subject.constant2file(Puppet::Util::ConstantInflector)).to be_instance_of(String)
end
it "should accept string inputs" do
expect(subject.constant2file("Puppet::Util::ConstantInflector")).to be_instance_of(String)
end
it "should downcase all terms" do
expect(subject.constant2file("Puppet")).to eq("puppet")
end
it "should convert '::' to '/'" do
expect(subject.constant2file("Puppet::Util::Constant")).to eq("puppet/util/constant")
end
it "should convert mid-word capitalization to an underscore" do
expect(subject.constant2file("OneTwo::ThreeFour")).to eq("one_two/three_four")
end
it "should correctly handle constants with more than two parts" do
expect(subject.constant2file("OneTwoThree::FourFiveSixSeven")).to eq("one_two_three/four_five_six_seven")
end
end
|