@Override
    public Map<String, Set<String>> readClasspathStorages() {
        log.debug("Reading extensions storages from classpath");
        Map<String, Set<String>> result = new LinkedHashMap<>();

        final Set<String> bucket = new HashSet<>();
        try {
            Enumeration<URL> urls = getExtensionResource(getClass().getClassLoader());
            if (urls.hasMoreElements()) {
                collectExtensions(urls, bucket);
            } else {
                log.debug("Cannot find '{}'", EXTENSIONS_RESOURCE);
            }

            debugExtensions(bucket);

            result.put(null, bucket);
        } catch (IOException | URISyntaxException e) {
            log.error(e.getMessage(), e);
        }

        return result;
    }
@Test
    void readClasspathStorages() {
        PluginManager pluginManager = mock(PluginManager.class);
        ServiceProviderExtensionFinder finder = new ServiceProviderExtensionFinder(pluginManager) {

            @Override
            Enumeration<URL> getExtensionResource(ClassLoader classLoader) throws IOException {
                return getExtensionEnumeration();
            }

        };

        Map<String, Set<String>> storages = finder.readClasspathStorages();
        assertNotNull(storages);
        assertTrue(storages.containsKey(null));
        Set<String> extensions = storages.get(null);
        assertEquals(2, extensions.size());
        assertThat(extensions, containsInAnyOrder(HELLO_GREETER_EXTENSION, WELCOME_GREETER_EXTENSION));
    }