@Override public void pluginLoaded(GoPluginDescriptor pluginDescriptor) { if (packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())) { fetchRepositoryAndPackageMetaData(pluginDescriptor); } }
@Test public void shouldNotTryToFetchMetadataOnPluginLoadedCallback() throws Exception { PackageMaterialMetadataLoader spy = spy(metadataLoader); when(packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())).thenReturn(false); spy.pluginLoaded(pluginDescriptor); verify(spy, never()).fetchRepositoryAndPackageMetaData(pluginDescriptor); }
@Test public void shouldFetchMetadataOnPluginLoadedCallback() throws Exception { PackageMaterialMetadataLoader spy = spy(metadataLoader); doNothing().when(spy).fetchRepositoryAndPackageMetaData(pluginDescriptor); when(packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())).thenReturn(true); spy.pluginLoaded(pluginDescriptor); verify(spy).fetchRepositoryAndPackageMetaData(pluginDescriptor); }
@Test public void shouldNotFailWhenAPluginWithMultipleExtensionsHasMoreThanOneExtensionRespondingWithSettings_BUT_OneIsValidAndOtherThrowsException() throws Exception { PluginSettingsConfiguration configuration = new PluginSettingsConfiguration(); configuration.add(new PluginSettingsProperty("k1").with(Property.REQUIRED, true).with(Property.SECURE, false)); String pluginID = "plugin-id"; GoPluginDescriptor pluginDescriptor = new GoPluginDescriptor(pluginID, "1.0", null, null, null, true); setupSettingsResponses(notificationExtension, pluginID, configuration, "view"); when(packageRepositoryExtension.canHandlePlugin(pluginID)).thenReturn(false); when(scmExtension.canHandlePlugin(pluginID)).thenReturn(true); when(scmExtension.getPluginSettingsConfiguration(pluginID)).thenThrow(new RuntimeException("Ouch!")); when(scmExtension.getPluginSettingsView(pluginID)).thenReturn("view"); metadataLoader.fetchPluginSettingsMetaData(pluginDescriptor); assertThat(PluginSettingsMetadataStore.getInstance().hasPlugin(pluginID), is(true)); verify(packageRepositoryExtension, never()).getPluginSettingsConfiguration(pluginID); verify(packageRepositoryExtension, never()).getPluginSettingsView(pluginID); }
@Test public void shouldRemoveMetadataOnPluginUnLoadedCallback() throws Exception { RepositoryMetadataStore.getInstance().addMetadataFor(pluginDescriptor.id(), new PackageConfigurations()); PackageMetadataStore.getInstance().addMetadataFor(pluginDescriptor.id(), new PackageConfigurations()); when(packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())).thenReturn(true); metadataLoader.pluginUnLoaded(pluginDescriptor); assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), is(nullValue())); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), is(nullValue())); } }