@@ -488,6 +488,115 @@ public void testFluentGenericTargetMapper() {
488488 );
489489 }
490490
491+ public void testGenericCarWrapperSourceAutoCompleteAfterCar () {
492+ configureByTestName ();
493+
494+ assertThat ( myItems )
495+ .extracting ( LookupElement ::getLookupString )
496+ .containsExactlyInAnyOrder (
497+ "winCode"
498+ );
499+
500+ assertThat ( myItems )
501+ .extracting ( LookupElementPresentation ::renderElement )
502+ .usingRecursiveFieldByFieldElementComparator ()
503+ .containsExactlyInAnyOrder (
504+ createVariable ( "winCode" , "String" )
505+ );
506+ }
507+
508+ public void testGenericCarWrapperTargetAutoCompleteAfterCar () {
509+ configureByTestName ();
510+
511+ assertThat ( myItems )
512+ .extracting ( LookupElement ::getLookupString )
513+ .containsExactlyInAnyOrder ( "winCode" );
514+
515+ assertThat ( myItems )
516+ .extracting ( LookupElementPresentation ::renderElement )
517+ .usingRecursiveFieldByFieldElementComparator ()
518+ .containsExactlyInAnyOrder ( createVariable ( "winCode" , "String" ) );
519+ }
520+
521+ public void testGenericCarWrapperSourceAutoCompleteAfterCarWithoutParameterPrefix () {
522+ configureByTestName ();
523+
524+ assertThat ( myItems )
525+ .extracting ( LookupElement ::getLookupString )
526+ .containsExactlyInAnyOrder ( "winCode" );
527+
528+ assertThat ( myItems )
529+ .extracting ( LookupElementPresentation ::renderElement )
530+ .usingRecursiveFieldByFieldElementComparator ()
531+ .containsExactlyInAnyOrder ( createVariable ( "winCode" , "String" ) );
532+ }
533+
534+ public void testGenericConstructorCarMapper () {
535+ configureByTestName ();
536+
537+ assertThat ( myItems )
538+ .extracting ( LookupElement ::getLookupString )
539+ .containsExactlyInAnyOrder ( "winCode" );
540+
541+ assertThat ( myItems )
542+ .extracting ( LookupElementPresentation ::renderElement )
543+ .usingRecursiveFieldByFieldElementComparator ()
544+ .containsExactlyInAnyOrder ( createVariable ( "winCode" , "String" ) );
545+ }
546+
547+ public void testGenericRecordConstructorTargetMapper () {
548+ configureByTestName ();
549+
550+ assertThat ( myItems )
551+ .extracting ( LookupElement ::getLookupString )
552+ .containsExactlyInAnyOrder ( "winCode" );
553+
554+ assertThat ( myItems )
555+ .extracting ( LookupElementPresentation ::renderElement )
556+ .usingRecursiveFieldByFieldElementComparator ()
557+ .usingElementComparatorIgnoringFields ( "myIcon" , "myTail" )
558+ .containsExactlyInAnyOrder ( createParameter ( "winCode" , "String" ) );
559+ }
560+
561+ public void testGenericConstructorMappingTargetUpdateMapper () {
562+ configureByTestName ();
563+
564+ assertThat ( myItems )
565+ .extracting ( LookupElement ::getLookupString )
566+ .containsExactlyInAnyOrder ( "winCode" );
567+
568+ assertThat ( myItems )
569+ .extracting ( LookupElementPresentation ::renderElement )
570+ .usingRecursiveFieldByFieldElementComparator ()
571+ .containsExactlyInAnyOrder ( createVariable ( "winCode" , "String" ) );
572+ }
573+
574+ public void testGenericTwoTypeParamsConstructorTargetMapper () {
575+ configureByTestName ();
576+
577+ assertThat ( myItems )
578+ .extracting ( LookupElement ::getLookupString )
579+ .containsExactlyInAnyOrder ( "serial" );
580+
581+ assertThat ( myItems )
582+ .extracting ( LookupElementPresentation ::renderElement )
583+ .usingRecursiveFieldByFieldElementComparator ()
584+ .containsExactlyInAnyOrder ( createVariable ( "serial" , "String" ) );
585+ }
586+
587+ public void testGenericNestedGenericTargetMapper () {
588+ configureByTestName ();
589+
590+ assertThat ( myItems )
591+ .extracting ( LookupElement ::getLookupString )
592+ .containsExactlyInAnyOrder ( "winCode" );
593+
594+ assertThat ( myItems )
595+ .extracting ( LookupElementPresentation ::renderElement )
596+ .usingRecursiveFieldByFieldElementComparator ()
597+ .containsExactlyInAnyOrder ( createVariable ( "winCode" , "String" ) );
598+ }
599+
491600 public void testVariantsCarMapperNoSourceClass () {
492601 myFixture .configureByFile ( "CarMapperNoSourceClass.java" );
493602 complete ();
0 commit comments