summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/version_info_spec.rb
blob: 94dccf7a4e5aeb59509855d1e2ea5f1921d3dad7 (plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
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