1616
1717import org .hibernate .Session ;
1818import org .hibernate .event .spi .EventType ;
19+ import org .hibernate .id .uuid .UuidVersion6Strategy ;
20+ import org .hibernate .id .uuid .UuidVersion7Strategy ;
1921import org .hibernate .internal .util .ReflectHelper ;
2022import org .hibernate .persister .collection .CollectionPersister ;
2123import org .hibernate .persister .entity .EntityPersister ;
@@ -37,6 +39,37 @@ public static void index() throws IOException {
3739 hibernateIndex = JandexTestUtils .indexJar ( Session .class );
3840 }
3941
42+ @ Nested
43+ class TypesNeedingRuntimeInitialization {
44+ @ ParameterizedTest
45+ @ EnumSource (TypesNeedingRuntimeInitialization_Category .class )
46+ void containsAllExpectedClasses (TypesNeedingRuntimeInitialization_Category category ) {
47+ assertThat ( StaticClassLists .typesNeedingRuntimeInitialization () )
48+ .containsAll ( category .classes ().collect ( Collectors .toSet () ) );
49+ }
50+
51+ @ Test
52+ void meta_noMissingTestCategory () {
53+ assertThat ( Arrays .stream ( TypesNeedingRuntimeInitialization_Category .values () ).flatMap ( TypesNeedingRuntimeInitialization_Category ::classes ) )
54+ .as ( "If this fails, a category is missing in " + TypesNeedingRuntimeInitialization_Category .class )
55+ .contains ( StaticClassLists .typesNeedingRuntimeInitialization () );
56+ }
57+ }
58+
59+ enum TypesNeedingRuntimeInitialization_Category {
60+ MISC {
61+ @ Override
62+ Stream <Class <?>> classes () {
63+ return Stream .of (
64+ UuidVersion6Strategy .Holder .class ,
65+ UuidVersion7Strategy .Holder .class
66+ );
67+ }
68+ };
69+
70+ abstract Stream <Class <?>> classes ();
71+ }
72+
4073 @ Nested
4174 class TypesNeedingAllConstructorsAccessible {
4275 @ ParameterizedTest
0 commit comments