public void unloadPlugin(GoPluginBundleDescriptor descriptorOfRemovedPlugin) {
        Bundle bundle = descriptorOfRemovedPlugin.bundle();
        if (bundle == null) {
            return;
        }

        for (GoPluginDescriptor pluginDescriptor : descriptorOfRemovedPlugin.descriptors()) {
            for (PluginChangeListener listener : pluginChangeListeners) {
                try {
                    listener.pluginUnLoaded(pluginDescriptor);
                } catch (Exception e) {
                    LOGGER.warn("A plugin unload listener ({}) failed: {}", listener.toString(), pluginDescriptor, e);
                }
            }
        }

        pluginOSGiFramework.unloadPlugin(descriptorOfRemovedPlugin);
    }
@Test
    void shouldNotUnloadAPluginIfItsBundleIsNull() {
        GoPluginBundleDescriptor pluginDescriptor = mock(GoPluginBundleDescriptor.class);
        when(pluginDescriptor.bundle()).thenReturn(null);

        pluginLoader.unloadPlugin(pluginDescriptor);

        verifyNoMoreInteractions(pluginOSGiFramework);
    }