@@ -2546,6 +2546,38 @@ public List<CtClass> createNewClasses(ClassPool classPool) throws Exception {
25462546 assertThat (jApiMethod .getCompatibilityChanges (), hasItem (new JApiCompatibilityChange (JApiCompatibilityChangeType .CLASS_GENERIC_TEMPLATE_CHANGED )));
25472547 }
25482548
2549+ @ Test
2550+ void testNewMethodWithGenericsImplemented () throws Exception {
2551+ JarArchiveComparatorOptions jarArchiveComparatorOptions = new JarArchiveComparatorOptions ();
2552+ jarArchiveComparatorOptions .setAccessModifier (AccessModifier .PRIVATE );
2553+ List <JApiClass > jApiClasses = ClassesHelper .compareClasses (jarArchiveComparatorOptions , new ClassesHelper .ClassesGenerator () {
2554+ @ Override
2555+ public List <CtClass > createOldClasses (ClassPool classPool ) {
2556+ CtClass ctClassC = CtClassBuilder .create ().name ("C" ).addToClassPool (classPool );
2557+ return Collections .singletonList (ctClassC );
2558+ }
2559+
2560+ @ Override
2561+ public List <CtClass > createNewClasses (ClassPool classPool ) throws Exception {
2562+ CtClass ctInterface = CtInterfaceBuilder .create ().name ("I" ).addToClassPool (classPool );
2563+ CtMethodBuilder .create ()
2564+ .abstractMethod ()
2565+ .returnType (CtClass .voidType )
2566+ .name ("newMethod" )
2567+ .parameter (classPool .get ("java.lang.Object" ))
2568+ .signature ("<T:Ljava/lang/Object;>(TT;)TT;" )
2569+ .addToClass (ctInterface );
2570+ CtClass ctClassC = CtClassBuilder .create ().name ("C" ).implementsInterface (ctInterface ).addToClassPool (classPool );
2571+ CtMethodBuilder .create ().publicAccess ().returnType (CtClass .voidType ).name ("newMethod" )
2572+ .parameter (classPool .get ("java.lang.String" )).addToClass (ctClassC );
2573+ return Collections .singletonList (ctClassC );
2574+ }
2575+ });
2576+ JApiClass jApiClass = getJApiClass (jApiClasses , "C" );
2577+ assertThat (jApiClass .getChangeStatus (), is (JApiChangeStatus .MODIFIED ));
2578+ assertThat (jApiClass .getCompatibilityChanges ().size (), is (1 ));
2579+ }
2580+
25492581 @ Test
25502582 void testMethodWithByteArrayAndArrayOfByteArrays () throws Exception {
25512583 JarArchiveComparatorOptions jarArchiveComparatorOptions = new JarArchiveComparatorOptions ();
0 commit comments