To be safe let all tests put their output to the consumer and let integration test verify it;
+ * don't perform any relevant assertions in this code because code shrinkers could affect it.
+ *
+ * @param outputConsumer consumes the test output: {@code name, content} pairs
+ */
+ public static void runTests(BiConsumer>() {});
+ testTypeTokenWriteRead(outputConsumer, "manual", () -> TypeToken.getParameterized(List.class, ClassWithAdapter.class));
+
+ testNamedFields(outputConsumer);
+ testSerializedName(outputConsumer);
+
+ testNoJdkUnsafe(outputConsumer);
+
+ testEnum(outputConsumer);
+ testEnumSerializedName(outputConsumer);
+
+ testExposeAnnotation(outputConsumer);
+ testVersionAnnotations(outputConsumer);
+ testJsonAdapterAnnotation(outputConsumer);
+
+ testGenericClasses(outputConsumer);
+ }
+
+ private static void testTypeTokenWriteRead(BiConsumer