Merge pull request #2035 from reitermarkus/spec-pkgversion
Convert PkgVersion test to spec.
This commit is contained in:
commit
c4cb1dd581
81
Library/Homebrew/test/pkg_version_spec.rb
Normal file
81
Library/Homebrew/test/pkg_version_spec.rb
Normal file
@ -0,0 +1,81 @@
|
||||
require "pkg_version"
|
||||
|
||||
describe PkgVersion do
|
||||
describe "::parse" do
|
||||
it "parses versions from a string" do
|
||||
expect(described_class.parse("1.0_1")).to eq(described_class.new(Version.create("1.0"), 1))
|
||||
expect(described_class.parse("1.0_1")).to eq(described_class.new(Version.create("1.0"), 1))
|
||||
expect(described_class.parse("1.0")).to eq(described_class.new(Version.create("1.0"), 0))
|
||||
expect(described_class.parse("1.0_0")).to eq(described_class.new(Version.create("1.0"), 0))
|
||||
expect(described_class.parse("2.1.4_0")).to eq(described_class.new(Version.create("2.1.4"), 0))
|
||||
expect(described_class.parse("1.0.1e_1")).to eq(described_class.new(Version.create("1.0.1e"), 1))
|
||||
end
|
||||
end
|
||||
|
||||
specify "#==" do
|
||||
expect(described_class.parse("1.0_0")).to be == described_class.parse("1.0")
|
||||
expect(described_class.parse("1.0_1")).to be == described_class.parse("1.0_1")
|
||||
end
|
||||
|
||||
describe "#>" do
|
||||
it "returns true if the left version is bigger than the right" do
|
||||
expect(described_class.parse("1.1")).to be > described_class.parse("1.0_1")
|
||||
end
|
||||
|
||||
it "returns true if the left version is HEAD" do
|
||||
expect(described_class.parse("HEAD")).to be > described_class.parse("1.0")
|
||||
end
|
||||
|
||||
it "raises an error if the other side isn't of the same class" do
|
||||
expect {
|
||||
described_class.new(Version.create("1.0"), 0) > Object.new
|
||||
}.to raise_error(ArgumentError)
|
||||
end
|
||||
|
||||
it "is not compatible with Version" do
|
||||
expect {
|
||||
described_class.new(Version.create("1.0"), 0) > Version.create("1.0")
|
||||
}.to raise_error(ArgumentError)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#<" do
|
||||
it "returns true if the left version is smaller than the right" do
|
||||
expect(described_class.parse("1.0_1")).to be < described_class.parse("2.0_1")
|
||||
end
|
||||
|
||||
it "returns true if the right version is HEAD" do
|
||||
expect(described_class.parse("1.0")).to be < described_class.parse("HEAD")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#<=>" do
|
||||
it "returns nil if the comparison fails" do
|
||||
expect(described_class.new(Version.create("1.0"), 0) <=> Object.new).to be nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_s" do
|
||||
it "returns a string of the form 'version_revision'" do
|
||||
expect(described_class.new(Version.create("1.0"), 0).to_s).to eq("1.0")
|
||||
expect(described_class.new(Version.create("1.0"), 1).to_s).to eq("1.0_1")
|
||||
expect(described_class.new(Version.create("1.0"), 0).to_s).to eq("1.0")
|
||||
expect(described_class.new(Version.create("1.0"), 0).to_s).to eq("1.0")
|
||||
expect(described_class.new(Version.create("HEAD"), 1).to_s).to eq("HEAD_1")
|
||||
expect(described_class.new(Version.create("HEAD-ffffff"), 1).to_s).to eq("HEAD-ffffff_1")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#hash" do
|
||||
let(:p1) { described_class.new(Version.create("1.0"), 1) }
|
||||
let(:p2) { described_class.new(Version.create("1.0"), 1) }
|
||||
let(:p3) { described_class.new(Version.create("1.1"), 1) }
|
||||
let(:p4) { described_class.new(Version.create("1.0"), 0) }
|
||||
|
||||
it "returns a hash based on the version and revision" do
|
||||
expect(p1.hash).to eq(p2.hash)
|
||||
expect(p1.hash).not_to eq(p3.hash)
|
||||
expect(p1.hash).not_to eq(p4.hash)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,51 +0,0 @@
|
||||
require "testing_env"
|
||||
require "pkg_version"
|
||||
|
||||
class PkgVersionTests < Homebrew::TestCase
|
||||
def v(version)
|
||||
PkgVersion.parse(version)
|
||||
end
|
||||
|
||||
def test_parse
|
||||
assert_equal PkgVersion.new(Version.create("1.0"), 1), PkgVersion.parse("1.0_1")
|
||||
assert_equal PkgVersion.new(Version.create("1.0"), 1), PkgVersion.parse("1.0_1")
|
||||
assert_equal PkgVersion.new(Version.create("1.0"), 0), PkgVersion.parse("1.0")
|
||||
assert_equal PkgVersion.new(Version.create("1.0"), 0), PkgVersion.parse("1.0_0")
|
||||
assert_equal PkgVersion.new(Version.create("2.1.4"), 0), PkgVersion.parse("2.1.4_0")
|
||||
assert_equal PkgVersion.new(Version.create("1.0.1e"), 1), PkgVersion.parse("1.0.1e_1")
|
||||
end
|
||||
|
||||
def test_comparison
|
||||
assert_operator v("1.0_0"), :==, v("1.0")
|
||||
assert_operator v("1.0_1"), :==, v("1.0_1")
|
||||
assert_operator v("1.1"), :>, v("1.0_1")
|
||||
assert_operator v("1.0_0"), :==, v("1.0")
|
||||
assert_operator v("1.0_1"), :<, v("2.0_1")
|
||||
assert_operator v("HEAD"), :>, v("1.0")
|
||||
assert_operator v("1.0"), :<, v("HEAD")
|
||||
|
||||
v = PkgVersion.new(Version.create("1.0"), 0)
|
||||
assert_nil v <=> Object.new
|
||||
assert_raises(ArgumentError) { v > Object.new }
|
||||
assert_raises(ArgumentError) { v > Version.create("1.0") }
|
||||
end
|
||||
|
||||
def test_to_s
|
||||
assert_equal "1.0", PkgVersion.new(Version.create("1.0"), 0).to_s
|
||||
assert_equal "1.0_1", PkgVersion.new(Version.create("1.0"), 1).to_s
|
||||
assert_equal "1.0", PkgVersion.new(Version.create("1.0"), 0).to_s
|
||||
assert_equal "1.0", PkgVersion.new(Version.create("1.0"), 0).to_s
|
||||
assert_equal "HEAD_1", PkgVersion.new(Version.create("HEAD"), 1).to_s
|
||||
assert_equal "HEAD-ffffff_1", PkgVersion.new(Version.create("HEAD-ffffff"), 1).to_s
|
||||
end
|
||||
|
||||
def test_hash
|
||||
p1 = PkgVersion.new(Version.create("1.0"), 1)
|
||||
p2 = PkgVersion.new(Version.create("1.0"), 1)
|
||||
p3 = PkgVersion.new(Version.create("1.1"), 1)
|
||||
p4 = PkgVersion.new(Version.create("1.0"), 0)
|
||||
assert_equal p1.hash, p2.hash
|
||||
refute_equal p1.hash, p3.hash
|
||||
refute_equal p1.hash, p4.hash
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user