### Question:
JavaModule implements NamedElement.WithOptionalName, AnnotationSource { public boolean canRead(JavaModule module) { return DISPATCHER.canRead(this.module, module.unwrap()); } protected  JavaModule(AnnotatedElement module); static JavaModule ofType(Class<?> type); static JavaModule of(Object module); static boolean isSupported(); boolean isNamed(); String getActualName(); InputStream getResourceAsStream(String name); ClassLoader getClassLoader(); Object unwrap(); boolean canRead(JavaModule module); boolean isExported(PackageDescription packageDescription, JavaModule module); boolean isOpened(PackageDescription packageDescription, JavaModule module); AnnotationList getDeclaredAnnotations(); void modify(Instrumentation instrumentation,
                       Set<JavaModule> reads,
                       Map<String, Set<JavaModule>> exports,
                       Map<String, Set<JavaModule>> opens,
                       Set<Class<?>> uses,
                       Map<Class<?>, List<Class<?>>> provides); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString(); static final JavaModule UNSUPPORTED; }### Answer:
@Test(expected = UnsupportedOperationException.class) public void testCanReadThrowsException() throws Exception { JavaModule.Dispatcher.Disabled.INSTANCE.canRead(mock(Object.class), mock(Object.class)); }