1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.internal;
18
19 import static org.junit.jupiter.api.Assertions.*;
20
21 import org.apache.juneau.*;
22 import org.junit.jupiter.params.*;
23 import org.junit.jupiter.params.provider.*;
24
25 class VersionRange_Test extends TestBase {
26
27 private static final Input[] INPUT = {
28 input("1.1", "1.1.3", true),
29 input("1.1", "1.1", true),
30 input("1.1", "1.1.0", true),
31 input("1.1", "1.0", false),
32 input("1.1", "1.0.9", false),
33 input("[1.0,2.0)", ".9", false),
34 input("[1.0,2.0)", "1", true),
35 input("[1.0,2.0)", "1.0", true),
36 input("[1.0,2.0)", "1.0.0", true),
37 input("[1.0,2.0)", "1.1", true),
38 input("[1.0,2.0)", "2.0", false),
39 input("[1.0,2.0)", "2", false),
40 input("(1.0,2.0]", "2", true),
41 input("(1.0,2.0]", "2.0", true),
42 input("(1.0,2.0]", "2.0.1", true),
43 input("(1.0,2.0]", "2.1", false),
44 input("(.5.0,.6]", ".5", false),
45 input("(.5.0,.6]", ".5.1", true),
46 input("(.5.0,.6]", ".6", true),
47 input("(.5.0,.6]", ".6.1", true),
48 input("(.5.0,.6]", ".7", false),
49 input("[1.1,2.0)", "1", false)
50 };
51
52 private static Input input(String range, String version, boolean shouldMatch) {
53 return new Input(range, version, shouldMatch);
54 }
55
56 private static class Input {
57 VersionRange range;
58 String version;
59 boolean shouldMatch;
60
61 public Input(String range, String version, boolean shouldMatch) {
62 this.version = version;
63 this.range = new VersionRange(range);
64 this.shouldMatch = shouldMatch;
65 }
66 }
67
68 static Input[] input() {
69 return INPUT;
70 }
71
72 @ParameterizedTest
73 @MethodSource("input")
74 void a01_basic(Input input) {
75 assertEquals(input.shouldMatch, input.range.matches(input.version));
76 }
77 }