### Question:
CheckAnnotationAdapter extends AnnotationVisitor { @Override public void visitEnum(final String name, final String descriptor, final String value) { checkVisitEndNotCalled(); checkName(name); CheckMethodAdapter.checkDescriptor(Opcodes.V1_5, descriptor, false); if (value == null) { throw new IllegalArgumentException("Invalid enum value"); } super.visitEnum(name, descriptor, value); } CheckAnnotationAdapter(final AnnotationVisitor annotationVisitor);   CheckAnnotationAdapter(final AnnotationVisitor annotationVisitor, final boolean useNamedValues); @Override void visit(final String name, final Object value); @Override void visitEnum(final String name, final String descriptor, final String value); @Override AnnotationVisitor visitAnnotation(final String name, final String descriptor); @Override AnnotationVisitor visitArray(final String name); @Override void visitEnd();  }### Answer:
@Test public void testVisitEnum_illegalAnnotationEnumValue() { CheckAnnotationAdapter checkAnnotationAdapter = new CheckAnnotationAdapter(null); Executable visitEnum = () -> checkAnnotationAdapter.visitEnum("name", "Lpkg/Enum;", null); Exception exception = assertThrows(IllegalArgumentException.class, visitEnum); assertEquals("Invalid enum value", exception.getMessage()); }