@@ -276,6 +276,90 @@ void runAssertions() {
276
276
.failsToCompile ();
277
277
}
278
278
279
+ @ Test
280
+ public void missingSuperclass () {
281
+ JavaFileObject javaFileObject = JavaFileObjects .forSourceLines (
282
+ "test.TestClass" ,
283
+ "package test;" ,
284
+ "" ,
285
+ "class TestClass extends Missing {}" );
286
+ assertAbout (javaSource ())
287
+ .that (javaFileObject )
288
+ .processedWith (new AssertingProcessor () {
289
+ @ Override
290
+ void runAssertions () {
291
+ TypeElement testClassElement =
292
+ processingEnv .getElementUtils ().getTypeElement ("test.TestClass" );
293
+ assertThat (SuperficialValidation .validateElement (testClassElement )).isFalse ();
294
+ }
295
+ })
296
+ .failsToCompile ();
297
+ }
298
+
299
+ @ Test
300
+ public void missingSuperinterface () {
301
+ JavaFileObject javaFileObject = JavaFileObjects .forSourceLines (
302
+ "test.TestClass" ,
303
+ "package test;" ,
304
+ "" ,
305
+ "class TestClass implements Missing {}" );
306
+ assertAbout (javaSource ())
307
+ .that (javaFileObject )
308
+ .processedWith (new AssertingProcessor () {
309
+ @ Override
310
+ void runAssertions () {
311
+ TypeElement testClassElement =
312
+ processingEnv .getElementUtils ().getTypeElement ("test.TestClass" );
313
+ assertThat (SuperficialValidation .validateElement (testClassElement )).isFalse ();
314
+ }
315
+ })
316
+ .failsToCompile ();
317
+ }
318
+
319
+ @ Test
320
+ public void missingGrandparentSuperclass () {
321
+ JavaFileObject javaFileObject = JavaFileObjects .forSourceLines (
322
+ "test.TestClass" ,
323
+ "package test;" ,
324
+ "" ,
325
+ "class Parent extends Missing {}" ,
326
+ "" ,
327
+ "class TestClass extends Parent {}" );
328
+ assertAbout (javaSource ())
329
+ .that (javaFileObject )
330
+ .processedWith (new AssertingProcessor () {
331
+ @ Override
332
+ void runAssertions () {
333
+ TypeElement testClassElement =
334
+ processingEnv .getElementUtils ().getTypeElement ("test.TestClass" );
335
+ assertThat (SuperficialValidation .validateElement (testClassElement )).isFalse ();
336
+ }
337
+ })
338
+ .failsToCompile ();
339
+ }
340
+
341
+ @ Test
342
+ public void missingGrandparentSuperinterface () {
343
+ JavaFileObject javaFileObject = JavaFileObjects .forSourceLines (
344
+ "test.TestClass" ,
345
+ "package test;" ,
346
+ "" ,
347
+ "interface Parent extends Missing {}" ,
348
+ "" ,
349
+ "class TestClass implements Parent {}" );
350
+ assertAbout (javaSource ())
351
+ .that (javaFileObject )
352
+ .processedWith (new AssertingProcessor () {
353
+ @ Override
354
+ void runAssertions () {
355
+ TypeElement testClassElement =
356
+ processingEnv .getElementUtils ().getTypeElement ("test.TestClass" );
357
+ assertThat (SuperficialValidation .validateElement (testClassElement )).isFalse ();
358
+ }
359
+ })
360
+ .failsToCompile ();
361
+ }
362
+
279
363
private abstract static class AssertingProcessor extends AbstractProcessor {
280
364
@ Override
281
365
public Set <String > getSupportedAnnotationTypes () {
0 commit comments