summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/version_info_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/version_info_spec.rb')
-rw-r--r--spec/lib/gitlab/version_info_spec.rb69
1 files changed, 69 insertions, 0 deletions
diff --git a/spec/lib/gitlab/version_info_spec.rb b/spec/lib/gitlab/version_info_spec.rb
new file mode 100644
index 00000000000..94dccf7a4e5
--- /dev/null
+++ b/spec/lib/gitlab/version_info_spec.rb
@@ -0,0 +1,69 @@
+require 'spec_helper'
+
+describe 'Gitlab::VersionInfo', no_db: true do
+ before do
+ @unknown = Gitlab::VersionInfo.new
+ @v0_0_1 = Gitlab::VersionInfo.new(0, 0, 1)
+ @v0_1_0 = Gitlab::VersionInfo.new(0, 1, 0)
+ @v1_0_0 = Gitlab::VersionInfo.new(1, 0, 0)
+ @v1_0_1 = Gitlab::VersionInfo.new(1, 0, 1)
+ @v1_1_0 = Gitlab::VersionInfo.new(1, 1, 0)
+ @v2_0_0 = Gitlab::VersionInfo.new(2, 0, 0)
+ end
+
+ context '>' do
+ it { @v2_0_0.should > @v1_1_0 }
+ it { @v1_1_0.should > @v1_0_1 }
+ it { @v1_0_1.should > @v1_0_0 }
+ it { @v1_0_0.should > @v0_1_0 }
+ it { @v0_1_0.should > @v0_0_1 }
+ end
+
+ context '>=' do
+ it { @v2_0_0.should >= Gitlab::VersionInfo.new(2, 0, 0) }
+ it { @v2_0_0.should >= @v1_1_0 }
+ end
+
+ context '<' do
+ it { @v0_0_1.should < @v0_1_0 }
+ it { @v0_1_0.should < @v1_0_0 }
+ it { @v1_0_0.should < @v1_0_1 }
+ it { @v1_0_1.should < @v1_1_0 }
+ it { @v1_1_0.should < @v2_0_0 }
+ end
+
+ context '<=' do
+ it { @v0_0_1.should <= Gitlab::VersionInfo.new(0, 0, 1) }
+ it { @v0_0_1.should <= @v0_1_0 }
+ end
+
+ context '==' do
+ it { @v0_0_1.should == Gitlab::VersionInfo.new(0, 0, 1) }
+ it { @v0_1_0.should == Gitlab::VersionInfo.new(0, 1, 0) }
+ it { @v1_0_0.should == Gitlab::VersionInfo.new(1, 0, 0) }
+ end
+
+ context '!=' do
+ it { @v0_0_1.should_not == @v0_1_0 }
+ end
+
+ context 'unknown' do
+ it { @unknown.should_not be @v0_0_1 }
+ it { @unknown.should_not be Gitlab::VersionInfo.new }
+ it { expect{@unknown > @v0_0_1}.to raise_error(ArgumentError) }
+ it { expect{@unknown < @v0_0_1}.to raise_error(ArgumentError) }
+ end
+
+ context 'parse' do
+ it { Gitlab::VersionInfo.parse("1.0.0").should == @v1_0_0 }
+ it { Gitlab::VersionInfo.parse("1.0.0.1").should == @v1_0_0 }
+ it { Gitlab::VersionInfo.parse("git 1.0.0b1").should == @v1_0_0 }
+ it { Gitlab::VersionInfo.parse("git 1.0b1").should_not be_valid }
+ end
+
+ context 'to_s' do
+ it { @v1_0_0.to_s.should == "1.0.0" }
+ it { @unknown.to_s.should == "Unknown" }
+ end
+end
+