26
26
import static org .apache .kafka .server .common .MetadataVersion .*;
27
27
import static org .junit .jupiter .api .Assertions .assertEquals ;
28
28
import static org .junit .jupiter .api .Assertions .assertFalse ;
29
+ import static org .junit .jupiter .api .Assertions .assertThrows ;
29
30
import static org .junit .jupiter .api .Assertions .assertTrue ;
30
31
31
32
class MetadataVersionTest {
@@ -42,55 +43,69 @@ public void testFeatureLevels() {
42
43
@ SuppressWarnings ("checkstyle:JavaNCSS" )
43
44
public void testFromVersionString () {
44
45
// 3.3-IV3 is the latest production version in the 3.3 line
45
- assertEquals (IBP_3_3_IV3 , MetadataVersion .fromVersionString ("3.3" ));
46
- assertEquals (IBP_3_3_IV3 , MetadataVersion .fromVersionString ("3.3-IV3" ));
46
+ assertEquals (IBP_3_3_IV3 , MetadataVersion .fromVersionString ("3.3" , true ));
47
+ assertEquals (IBP_3_3_IV3 , MetadataVersion .fromVersionString ("3.3-IV3" , true ));
47
48
48
49
// 3.4-IV0 is the latest production version in the 3.4 line
49
- assertEquals (IBP_3_4_IV0 , MetadataVersion .fromVersionString ("3.4" ));
50
- assertEquals (IBP_3_4_IV0 , MetadataVersion .fromVersionString ("3.4-IV0" ));
50
+ assertEquals (IBP_3_4_IV0 , MetadataVersion .fromVersionString ("3.4" , true ));
51
+ assertEquals (IBP_3_4_IV0 , MetadataVersion .fromVersionString ("3.4-IV0" , true ));
51
52
52
53
// 3.5-IV2 is the latest production version in the 3.5 line
53
- assertEquals (IBP_3_5_IV2 , MetadataVersion .fromVersionString ("3.5" ));
54
- assertEquals (IBP_3_5_IV0 , MetadataVersion .fromVersionString ("3.5-IV0" ));
55
- assertEquals (IBP_3_5_IV1 , MetadataVersion .fromVersionString ("3.5-IV1" ));
56
- assertEquals (IBP_3_5_IV2 , MetadataVersion .fromVersionString ("3.5-IV2" ));
54
+ assertEquals (IBP_3_5_IV2 , MetadataVersion .fromVersionString ("3.5" , true ));
55
+ assertEquals (IBP_3_5_IV0 , MetadataVersion .fromVersionString ("3.5-IV0" , true ));
56
+ assertEquals (IBP_3_5_IV1 , MetadataVersion .fromVersionString ("3.5-IV1" , true ));
57
+ assertEquals (IBP_3_5_IV2 , MetadataVersion .fromVersionString ("3.5-IV2" , true ));
57
58
58
59
// 3.6-IV2 is the latest production version in the 3.6 line
59
- assertEquals (IBP_3_6_IV2 , MetadataVersion .fromVersionString ("3.6" ));
60
- assertEquals (IBP_3_6_IV0 , MetadataVersion .fromVersionString ("3.6-IV0" ));
61
- assertEquals (IBP_3_6_IV1 , MetadataVersion .fromVersionString ("3.6-IV1" ));
62
- assertEquals (IBP_3_6_IV2 , MetadataVersion .fromVersionString ("3.6-IV2" ));
60
+ assertEquals (IBP_3_6_IV2 , MetadataVersion .fromVersionString ("3.6" , true ));
61
+ assertEquals (IBP_3_6_IV0 , MetadataVersion .fromVersionString ("3.6-IV0" , true ));
62
+ assertEquals (IBP_3_6_IV1 , MetadataVersion .fromVersionString ("3.6-IV1" , true ));
63
+ assertEquals (IBP_3_6_IV2 , MetadataVersion .fromVersionString ("3.6-IV2" , true ));
63
64
64
65
// 3.7-IV4 is the latest production version in the 3.7 line
65
- assertEquals (IBP_3_7_IV4 , MetadataVersion .fromVersionString ("3.7" ));
66
- assertEquals (IBP_3_7_IV0 , MetadataVersion .fromVersionString ("3.7-IV0" ));
67
- assertEquals (IBP_3_7_IV1 , MetadataVersion .fromVersionString ("3.7-IV1" ));
68
- assertEquals (IBP_3_7_IV2 , MetadataVersion .fromVersionString ("3.7-IV2" ));
69
- assertEquals (IBP_3_7_IV3 , MetadataVersion .fromVersionString ("3.7-IV3" ));
70
- assertEquals (IBP_3_7_IV4 , MetadataVersion .fromVersionString ("3.7-IV4" ));
66
+ assertEquals (IBP_3_7_IV4 , MetadataVersion .fromVersionString ("3.7" , true ));
67
+ assertEquals (IBP_3_7_IV0 , MetadataVersion .fromVersionString ("3.7-IV0" , true ));
68
+ assertEquals (IBP_3_7_IV1 , MetadataVersion .fromVersionString ("3.7-IV1" , true ));
69
+ assertEquals (IBP_3_7_IV2 , MetadataVersion .fromVersionString ("3.7-IV2" , true ));
70
+ assertEquals (IBP_3_7_IV3 , MetadataVersion .fromVersionString ("3.7-IV3" , true ));
71
+ assertEquals (IBP_3_7_IV4 , MetadataVersion .fromVersionString ("3.7-IV4" , true ));
71
72
72
73
// 3.8-IV0 is the latest production version in the 3.8 line
73
- assertEquals (IBP_3_8_IV0 , MetadataVersion .fromVersionString ("3.8" ));
74
- assertEquals (IBP_3_8_IV0 , MetadataVersion .fromVersionString ("3.8-IV0" ));
74
+ assertEquals (IBP_3_8_IV0 , MetadataVersion .fromVersionString ("3.8" , true ));
75
+ assertEquals (IBP_3_8_IV0 , MetadataVersion .fromVersionString ("3.8-IV0" , true ));
75
76
76
77
// 3.9-IV0 is the latest production version in the 3.9 line
77
- assertEquals (IBP_3_9_IV0 , MetadataVersion .fromVersionString ("3.9" ));
78
- assertEquals (IBP_3_9_IV0 , MetadataVersion .fromVersionString ("3.9-IV0" ));
78
+ assertEquals (IBP_3_9_IV0 , MetadataVersion .fromVersionString ("3.9" , true ));
79
+ assertEquals (IBP_3_9_IV0 , MetadataVersion .fromVersionString ("3.9-IV0" , true ));
79
80
80
81
// 4.0-IV3 is the latest production version in the 4.0 line
81
- assertEquals (IBP_4_0_IV3 , MetadataVersion .fromVersionString ("4.0" ));
82
- assertEquals (IBP_4_0_IV0 , MetadataVersion .fromVersionString ("4.0-IV0" ));
83
- assertEquals (IBP_4_0_IV1 , MetadataVersion .fromVersionString ("4.0-IV1" ));
84
- assertEquals (IBP_4_0_IV2 , MetadataVersion .fromVersionString ("4.0-IV2" ));
85
- assertEquals (IBP_4_0_IV3 , MetadataVersion .fromVersionString ("4.0-IV3" ));
82
+ assertEquals (IBP_4_0_IV3 , MetadataVersion .fromVersionString ("4.0" , true ));
83
+ assertEquals (IBP_4_0_IV0 , MetadataVersion .fromVersionString ("4.0-IV0" , true ));
84
+ assertEquals (IBP_4_0_IV1 , MetadataVersion .fromVersionString ("4.0-IV1" , true ));
85
+ assertEquals (IBP_4_0_IV2 , MetadataVersion .fromVersionString ("4.0-IV2" , true ));
86
+ assertEquals (IBP_4_0_IV3 , MetadataVersion .fromVersionString ("4.0-IV3" , true ));
86
87
87
88
// 4.1-IV1 is the latest production version in the 4.1 line
88
- assertEquals (IBP_4_1_IV1 , MetadataVersion .fromVersionString ("4.1" ));
89
- assertEquals (IBP_4_1_IV0 , MetadataVersion .fromVersionString ("4.1-IV0" ));
90
- assertEquals (IBP_4_1_IV1 , MetadataVersion .fromVersionString ("4.1-IV1" ));
89
+ assertEquals (IBP_4_1_IV1 , MetadataVersion .fromVersionString ("4.1" , true ));
90
+ assertEquals (IBP_4_1_IV0 , MetadataVersion .fromVersionString ("4.1-IV0" , true ));
91
+ assertEquals (IBP_4_1_IV1 , MetadataVersion .fromVersionString ("4.1-IV1" , true ));
92
+
93
+ assertEquals (IBP_4_2_IV0 , MetadataVersion .fromVersionString ("4.2-IV0" , true ));
94
+ assertEquals (IBP_4_2_IV1 , MetadataVersion .fromVersionString ("4.2-IV1" , true ));
95
+
96
+ // Throws exception when unstableFeatureVersionsEnabled is false
97
+ assertEquals ("Unknown metadata.version '4.2-IV0'. Supported metadata.version are: 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, "
98
+ + "3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 3.7-IV3, 3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3, 4.1-IV0, 4.1-IV1" ,
99
+ assertThrows (IllegalArgumentException .class , () -> fromVersionString ("4.2-IV0" , false )).getMessage ());
100
+ assertEquals ("Unknown metadata.version '4.2-IV1'. Supported metadata.version are: 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, "
101
+ + "3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 3.7-IV3, 3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3, 4.1-IV0, 4.1-IV1" ,
102
+ assertThrows (IllegalArgumentException .class , () -> fromVersionString ("4.2-IV1" , false )).getMessage ());
103
+ }
91
104
92
- assertEquals (IBP_4_2_IV0 , MetadataVersion .fromVersionString ("4.2-IV0" ));
93
- assertEquals (IBP_4_2_IV1 , MetadataVersion .fromVersionString ("4.2-IV1" ));
105
+ @ Test
106
+ public void testMetadataVersionsToString () {
107
+ assertEquals ("3.5-IV0, 3.5-IV1, 3.5-IV2, 3.6-IV0" ,
108
+ MetadataVersion .metadataVersionsToString (MetadataVersion .IBP_3_5_IV0 , MetadataVersion .IBP_3_6_IV0 ));
94
109
}
95
110
96
111
@ Test
0 commit comments