### Question:
AbstractConfig implements Serializable { protected static void checkExtension(Class<?> type, String property, String value) { checkName(property, value); if (StringUtils.isNotEmpty(value) && !ExtensionLoader.getExtensionLoader(type).hasExtension(value)) { throw new IllegalStateException("No such extension " + value + " for " + property + "/" + type.getName()); } }  @Parameter(excluded = true) String getId(); void setId(String id); void updateIdIfAbsent(String value); Map<String, String> getMetaData(); @Parameter(excluded = true) String getPrefix(); void setPrefix(String prefix); void refresh(); @Override String toString(); @Parameter(excluded = true) boolean isValid();  }### Answer:
@Test public void checkExtension() throws Exception { Assertions.assertThrows(IllegalStateException.class, () -> AbstractConfig.checkExtension(Greeting.class, "hello", "world")); }