1515import java .lang .reflect .Modifier ;
1616import java .util .Collections ;
1717import java .util .List ;
18- import java .util .Map ;
1918import java .util .Set ;
2019import java .util .TreeSet ;
2120import java .util .regex .Matcher ;
2221import java .util .regex .Pattern ;
2322
23+ import static org .hamcrest .Matchers .contains ;
2424import static org .hamcrest .Matchers .containsString ;
2525import static org .hamcrest .Matchers .endsWith ;
26- import static org .hamcrest .Matchers .equalTo ;
2726import static org .hamcrest .Matchers .greaterThan ;
2827import static org .hamcrest .Matchers .is ;
2928import static org .hamcrest .Matchers .lessThan ;
@@ -37,7 +36,7 @@ public class TransportVersionTests extends ESTestCase {
3736 * If the test fails, there is something wrong with your backport PR.
3837 */
3938 public void testMaximumAllowedTransportVersion () {
40- assertThat (TransportVersions . LATEST_DEFINED .isPatchFrom (TransportVersions .INITIAL_ELASTICSEARCH_8_19 ), is (true ));
39+ assertThat (TransportVersion . current () .isPatchFrom (TransportVersions .INITIAL_ELASTICSEARCH_8_19 ), is (true ));
4140 }
4241
4342 public void testVersionComparison () {
@@ -79,21 +78,18 @@ public static class DuplicatedIdFakeVersion {
7978
8079 public void testStaticTransportVersionChecks () {
8180 assertThat (
82- TransportVersions .getAllVersionIds (CorrectFakeVersion .class ),
83- equalTo (
84- Map .of (
85- 199 ,
86- CorrectFakeVersion .V_0_00_01 ,
87- 2 ,
88- CorrectFakeVersion .V_0_000_002 ,
89- 3 ,
90- CorrectFakeVersion .V_0_000_003 ,
91- 4 ,
92- CorrectFakeVersion .V_0_000_004
93- )
81+ TransportVersions .collectAllVersionIdsDefinedInClass (CorrectFakeVersion .class ),
82+ contains (
83+ CorrectFakeVersion .V_0_000_002 ,
84+ CorrectFakeVersion .V_0_000_003 ,
85+ CorrectFakeVersion .V_0_000_004 ,
86+ CorrectFakeVersion .V_0_00_01
9487 )
9588 );
96- AssertionError e = expectThrows (AssertionError .class , () -> TransportVersions .getAllVersionIds (DuplicatedIdFakeVersion .class ));
89+ AssertionError e = expectThrows (
90+ AssertionError .class ,
91+ () -> TransportVersions .collectAllVersionIdsDefinedInClass (DuplicatedIdFakeVersion .class )
92+ );
9793 assertThat (e .getMessage (), containsString ("have the same version number" ));
9894 }
9995
@@ -196,7 +192,7 @@ public void testVersionConstantPresent() {
196192 }
197193
198194 public void testCURRENTIsLatest () {
199- assertThat (Collections .max (TransportVersions .getAllVersions ()), is (TransportVersion .current ()));
195+ assertThat (Collections .max (TransportVersion .getAllVersions ()), is (TransportVersion .current ()));
200196 }
201197
202198 public void testPatchVersionsStillAvailable () {
@@ -233,7 +229,7 @@ public void testToString() {
233229 public void testDenseTransportVersions () {
234230 Set <Integer > missingVersions = new TreeSet <>();
235231 TransportVersion previous = null ;
236- for (var tv : TransportVersions .getAllVersions ()) {
232+ for (var tv : TransportVersion .getAllVersions ()) {
237233 if (tv .before (TransportVersions .V_8_16_0 )) {
238234 continue ;
239235 }
@@ -261,7 +257,7 @@ public void testDenseTransportVersions() {
261257 }
262258
263259 public void testDuplicateConstants () {
264- List <TransportVersion > tvs = TransportVersions .getAllVersions ().stream ().sorted ().toList ();
260+ List <TransportVersion > tvs = TransportVersion .getAllVersions ().stream ().sorted ().toList ();
265261 TransportVersion previous = tvs .get (0 );
266262 for (int i = 1 ; i < tvs .size (); i ++) {
267263 TransportVersion next = tvs .get (i );
@@ -271,4 +267,112 @@ public void testDuplicateConstants() {
271267 previous = next ;
272268 }
273269 }
270+
271+ public void testFromName () {
272+ assertThat (TransportVersion .fromName ("test_0" ), is (new TransportVersion ("test_0" , 3001000 , null )));
273+ assertThat (TransportVersion .fromName ("test_1" ), is (new TransportVersion ("test_1" , 3002000 , null )));
274+ assertThat (
275+ TransportVersion .fromName ("test_2" ),
276+ is (
277+ new TransportVersion (
278+ "test_2" ,
279+ 3003000 ,
280+ new TransportVersion ("test_2" , 2001001 , new TransportVersion ("test_2" , 1001001 , null ))
281+ )
282+ )
283+ );
284+ assertThat (
285+ TransportVersion .fromName ("test_3" ),
286+ is (new TransportVersion ("test_3" , 3003001 , new TransportVersion ("test_3" , 2001002 , null )))
287+ );
288+ assertThat (
289+ TransportVersion .fromName ("test_4" ),
290+ is (
291+ new TransportVersion (
292+ "test_4" ,
293+ 3003002 ,
294+ new TransportVersion ("test_4" , 2001003 , new TransportVersion ("test_4" , 1001002 , null ))
295+ )
296+ )
297+ );
298+ }
299+
300+ public void testSupports () {
301+ TransportVersion test0 = TransportVersion .fromName ("test_0" );
302+ assertThat (new TransportVersion (null , 2003000 , null ).supports (test0 ), is (false ));
303+ assertThat (new TransportVersion (null , 3001000 , null ).supports (test0 ), is (true ));
304+ assertThat (new TransportVersion (null , 100001001 , null ).supports (test0 ), is (true ));
305+
306+ TransportVersion test1 = TransportVersion .fromName ("test_1" );
307+ assertThat (new TransportVersion (null , 2003000 , null ).supports (test1 ), is (false ));
308+ assertThat (new TransportVersion (null , 3001000 , null ).supports (test1 ), is (false ));
309+ assertThat (new TransportVersion (null , 3001001 , null ).supports (test1 ), is (false ));
310+ assertThat (new TransportVersion (null , 3002000 , null ).supports (test1 ), is (true ));
311+ assertThat (new TransportVersion (null , 100001000 , null ).supports (test1 ), is (true ));
312+ assertThat (new TransportVersion (null , 100001001 , null ).supports (test1 ), is (true ));
313+
314+ TransportVersion test2 = TransportVersion .fromName ("test_2" );
315+ assertThat (new TransportVersion (null , 1001000 , null ).supports (test2 ), is (false ));
316+ assertThat (new TransportVersion (null , 1001001 , null ).supports (test2 ), is (true ));
317+ assertThat (new TransportVersion (null , 1001002 , null ).supports (test2 ), is (true ));
318+ assertThat (new TransportVersion (null , 1002000 , null ).supports (test2 ), is (false ));
319+ assertThat (new TransportVersion (null , 1002001 , null ).supports (test2 ), is (false ));
320+ assertThat (new TransportVersion (null , 2001000 , null ).supports (test2 ), is (false ));
321+ assertThat (new TransportVersion (null , 2001001 , null ).supports (test2 ), is (true ));
322+ assertThat (new TransportVersion (null , 2001002 , null ).supports (test2 ), is (true ));
323+ assertThat (new TransportVersion (null , 2003000 , null ).supports (test2 ), is (false ));
324+ assertThat (new TransportVersion (null , 2003001 , null ).supports (test2 ), is (false ));
325+ assertThat (new TransportVersion (null , 3001000 , null ).supports (test2 ), is (false ));
326+ assertThat (new TransportVersion (null , 3001001 , null ).supports (test2 ), is (false ));
327+ assertThat (new TransportVersion (null , 3003000 , null ).supports (test2 ), is (true ));
328+ assertThat (new TransportVersion (null , 3003001 , null ).supports (test2 ), is (true ));
329+ assertThat (new TransportVersion (null , 3003002 , null ).supports (test2 ), is (true ));
330+ assertThat (new TransportVersion (null , 3003003 , null ).supports (test2 ), is (true ));
331+ assertThat (new TransportVersion (null , 100001000 , null ).supports (test2 ), is (true ));
332+ assertThat (new TransportVersion (null , 100001001 , null ).supports (test2 ), is (true ));
333+
334+ TransportVersion test3 = TransportVersion .fromName ("test_3" );
335+ assertThat (new TransportVersion (null , 1001001 , null ).supports (test3 ), is (false ));
336+ assertThat (new TransportVersion (null , 1001002 , null ).supports (test3 ), is (false ));
337+ assertThat (new TransportVersion (null , 1001003 , null ).supports (test3 ), is (false ));
338+ assertThat (new TransportVersion (null , 1002001 , null ).supports (test3 ), is (false ));
339+ assertThat (new TransportVersion (null , 1002002 , null ).supports (test3 ), is (false ));
340+ assertThat (new TransportVersion (null , 2001001 , null ).supports (test3 ), is (false ));
341+ assertThat (new TransportVersion (null , 2001002 , null ).supports (test3 ), is (true ));
342+ assertThat (new TransportVersion (null , 2001003 , null ).supports (test3 ), is (true ));
343+ assertThat (new TransportVersion (null , 2003000 , null ).supports (test3 ), is (false ));
344+ assertThat (new TransportVersion (null , 2003001 , null ).supports (test3 ), is (false ));
345+ assertThat (new TransportVersion (null , 3001000 , null ).supports (test3 ), is (false ));
346+ assertThat (new TransportVersion (null , 3001001 , null ).supports (test3 ), is (false ));
347+ assertThat (new TransportVersion (null , 3003000 , null ).supports (test3 ), is (false ));
348+ assertThat (new TransportVersion (null , 3003001 , null ).supports (test3 ), is (true ));
349+ assertThat (new TransportVersion (null , 3003002 , null ).supports (test3 ), is (true ));
350+ assertThat (new TransportVersion (null , 3003003 , null ).supports (test3 ), is (true ));
351+ assertThat (new TransportVersion (null , 3004000 , null ).supports (test3 ), is (true ));
352+ assertThat (new TransportVersion (null , 100001000 , null ).supports (test3 ), is (true ));
353+ assertThat (new TransportVersion (null , 100001001 , null ).supports (test3 ), is (true ));
354+
355+ TransportVersion test4 = TransportVersion .fromName ("test_4" );
356+ assertThat (new TransportVersion (null , 1001001 , null ).supports (test4 ), is (false ));
357+ assertThat (new TransportVersion (null , 1001002 , null ).supports (test4 ), is (true ));
358+ assertThat (new TransportVersion (null , 1001003 , null ).supports (test4 ), is (true ));
359+ assertThat (new TransportVersion (null , 1002001 , null ).supports (test4 ), is (false ));
360+ assertThat (new TransportVersion (null , 1002002 , null ).supports (test4 ), is (false ));
361+ assertThat (new TransportVersion (null , 1002003 , null ).supports (test3 ), is (false ));
362+ assertThat (new TransportVersion (null , 2001002 , null ).supports (test4 ), is (false ));
363+ assertThat (new TransportVersion (null , 2001003 , null ).supports (test4 ), is (true ));
364+ assertThat (new TransportVersion (null , 2001004 , null ).supports (test4 ), is (true ));
365+ assertThat (new TransportVersion (null , 2003000 , null ).supports (test4 ), is (false ));
366+ assertThat (new TransportVersion (null , 2003001 , null ).supports (test4 ), is (false ));
367+ assertThat (new TransportVersion (null , 3001000 , null ).supports (test4 ), is (false ));
368+ assertThat (new TransportVersion (null , 3001001 , null ).supports (test4 ), is (false ));
369+ assertThat (new TransportVersion (null , 3003000 , null ).supports (test4 ), is (false ));
370+ assertThat (new TransportVersion (null , 3003001 , null ).supports (test4 ), is (false ));
371+ assertThat (new TransportVersion (null , 3003002 , null ).supports (test4 ), is (true ));
372+ assertThat (new TransportVersion (null , 3003003 , null ).supports (test4 ), is (true ));
373+ assertThat (new TransportVersion (null , 3003004 , null ).supports (test4 ), is (true ));
374+ assertThat (new TransportVersion (null , 3004000 , null ).supports (test4 ), is (true ));
375+ assertThat (new TransportVersion (null , 100001000 , null ).supports (test4 ), is (true ));
376+ assertThat (new TransportVersion (null , 100001001 , null ).supports (test4 ), is (true ));
377+ }
274378}
0 commit comments