|
4 | 4 | describe SplitIoClient::Semver do |
5 | 5 | let(:valid_versions) do |
6 | 6 | CSV.parse(File.read(File.expand_path(File.join(File.dirname(__FILE__), |
7 | | - '../../test_data/splits/semver/valid-semantic-versions.csv')))) |
| 7 | + '../../test_data/splits/semver/valid-semantic-versions.csv'))), headers: true) |
8 | 8 | end |
9 | 9 | let(:invalid_versions) do |
10 | 10 | CSV.parse(File.read(File.expand_path(File.join(File.dirname(__FILE__), |
11 | | - '../../test_data/splits/semver/invalid-semantic-versions.csv')))) |
| 11 | + '../../test_data/splits/semver/invalid-semantic-versions.csv'))), headers: true) |
12 | 12 | end |
13 | 13 | let(:equal_to_versions) do |
14 | 14 | CSV.parse(File.read(File.expand_path(File.join(File.dirname(__FILE__), |
15 | | - '../../test_data/splits/semver/equal-to-semver.csv')))) |
| 15 | + '../../test_data/splits/semver/equal-to-semver.csv'))), headers: true) |
| 16 | + end |
| 17 | + |
| 18 | + let(:between_versions) do |
| 19 | + CSV.parse(File.read(File.expand_path(File.join(File.dirname(__FILE__), |
| 20 | + '../../test_data/splits/semver/between-semver.csv'))), headers: true) |
16 | 21 | end |
17 | 22 |
|
18 | 23 | let(:logger) { Logger.new('/dev/null') } |
19 | 24 |
|
20 | 25 | context 'check versions' do |
21 | 26 | it 'accept valid versions' do |
22 | 27 | for i in (0..valid_versions.length-1) |
23 | | - expect(described_class.build(valid_versions[i][0], logger)).should_not be_nil |
| 28 | + expect(described_class.build(valid_versions[i][0], logger)).not_to be_nil |
24 | 29 | end |
25 | 30 | end |
26 | 31 | it 'reject invalid versions' do |
|
39 | 44 | expect(described_class.build(valid_versions[i][1], logger).compare(described_class.build(valid_versions[i][1], logger))).to eq(0) |
40 | 45 | end |
41 | 46 | for i in (1..equal_to_versions.length-1) |
42 | | - if valid_versions[i][2] |
43 | | - expect(described_class.build(valid_versions[i][0], logger).compare(described_class.build(valid_versions[i][1], logger))).to eq(0) |
| 47 | + if equal_to_versions[i][2]=='true' |
| 48 | + expect(described_class.build(equal_to_versions[i][0], logger).compare(described_class.build(equal_to_versions[i][1], logger))).to eq(0) |
44 | 49 | else |
45 | | - expect(described_class.build(valid_versions[i][0], logger).compare(described_class.build(valid_versions[i][1], logger))).not_to eq(0) |
| 50 | + expect(described_class.build(equal_to_versions[i][0], logger).compare(described_class.build(equal_to_versions[i][1], logger))).not_to eq(0) |
46 | 51 | end |
47 | 52 | end |
| 53 | + for i in (1..between_versions.length-1) |
| 54 | + sem1 = described_class.build(between_versions[i][0], logger) |
| 55 | + sem2 = described_class.build(between_versions[i][2], logger) |
| 56 | + to_check = described_class.build(between_versions[i][1], logger) |
| 57 | + if between_versions[i][3]=='true' |
| 58 | + expect(sem1.compare(to_check)).to eq(-1) |
| 59 | + expect(sem2.compare(to_check)).to eq(1) |
| 60 | + else |
| 61 | + compare1 = sem1.compare(to_check) |
| 62 | + compare2 = sem2.compare(to_check) |
| 63 | + expect(compare1 == -1 && compare2 == 1).to eq(false) |
| 64 | + end |
| 65 | + end |
| 66 | + |
48 | 67 | end |
49 | 68 | end |
50 | 69 | end |
0 commit comments