Skip to content

Commit

Permalink
include invalid values in errors
Browse files Browse the repository at this point in the history
  • Loading branch information
danielsdeleo committed Jun 13, 2010
1 parent f2659de commit 80039f9
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 11 deletions.
4 changes: 2 additions & 2 deletions chef/lib/chef/cookbook/metadata/version.rb
Expand Up @@ -32,13 +32,13 @@ def initialize(str="")
end

def _parse(str="")
@major, @minor, @patch = case str
@major, @minor, @patch = case str.to_s
when /^(\d+)\.(\d+)\.(\d+)$/
[ $1.to_i, $2.to_i, $3.to_i ]
when /^(\d+)\.(\d+)$/
[ $1.to_i, $2.to_i, 0 ]
else
raise "Metadata version does not match 'x.y.z' or 'x.y'"
raise "Metadata version '#{str.to_s}' does not match 'x.y.z' or 'x.y'"
end
end

Expand Down
14 changes: 5 additions & 9 deletions chef/spec/unit/cookbook/metadata/version_spec.rb
Expand Up @@ -35,20 +35,16 @@

it "should raise an error with an invalid string" do
lambda { @ccmv.new("poos") }.should(
raise_error("Metadata version does not match 'x.y.z' or 'x.y'")
raise_error("Metadata version 'poos' does not match 'x.y.z' or 'x.y'")
)
end

it "should accept a 3 digit, two-decimal version string" do
lambda { @ccmv.new("1.2.3") }.should_not(
raise_error("Metadata version does not match 'x.y.z' or 'x.y'")
)
lambda { @ccmv.new("1.2.3") }.should_not raise_error
end

it "should accept a 2 digit, one-decimal version string" do
lambda { @ccmv.new("1.2") }.should_not(
raise_error("Metadata version does not match 'x.y.z' or 'x.y'")
)
lambda { @ccmv.new("1.2") }.should_not raise_error
end
end

Expand All @@ -63,11 +59,11 @@
describe "_parse" do

it "should raise an error when called with no arg" do
lambda { @v._parse }.should raise_error("Metadata version does not match 'x.y.z' or 'x.y'")
lambda { @v._parse }.should raise_error("Metadata version '' does not match 'x.y.z' or 'x.y'")
end

it "should raise an error when called with a non matching string" do
lambda { @v._parse("poopypants") }.should raise_error("Metadata version does not match 'x.y.z' or 'x.y'")
lambda { @v._parse("poopypants") }.should raise_error("Metadata version 'poopypants' does not match 'x.y.z' or 'x.y'")
end

it "should parse '1.2' into [1, 2, 0]" do
Expand Down

0 comments on commit 80039f9

Please sign in to comment.