@Override public void pluginLoaded(GoPluginDescriptor pluginDescriptor) { if (packageRepositoryExtension.canHandlePlugin(pluginDescriptor.id())) { 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 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 shouldThrowExceptionWhenNullRepositoryConfigurationReturned() { when(packageRepositoryExtension.getRepositoryConfiguration(pluginDescriptor.id())).thenReturn(null); try { metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); } catch (Exception e) { assertThat(e.getMessage(), is("Plugin[plugin-id] returned null repository configuration")); } assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); }
@Test public void shouldThrowExceptionWhenNullPackageConfigurationReturned() { when(packageRepositoryExtension.getPackageConfiguration(pluginDescriptor.id())).thenReturn(null); try { metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); } catch (Exception e) { assertThat(e.getMessage(), is("Plugin[plugin-id] returned null repository configuration")); } assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()), nullValue()); }
@Test public void shouldFetchPackageMetadataForPluginsWhichImplementPackageRepositoryMaterialExtensionPoint() { RepositoryConfiguration expectedRepoConfigurations = new RepositoryConfiguration(); com.thoughtworks.go.plugin.api.material.packagerepository.PackageConfiguration expectedPackageConfigurations = new PackageConfiguration(); when(packageRepositoryExtension.getRepositoryConfiguration(pluginDescriptor.id())).thenReturn(expectedRepoConfigurations); when(packageRepositoryExtension.getPackageConfiguration(pluginDescriptor.id())).thenReturn(expectedPackageConfigurations); metadataLoader.fetchRepositoryAndPackageMetaData(pluginDescriptor); assertThat(RepositoryMetadataStore.getInstance().getMetadata(pluginDescriptor.id()).getRepositoryConfiguration(), is(expectedRepoConfigurations)); assertThat(PackageMetadataStore.getInstance().getMetadata(pluginDescriptor.id()).getPackageConfiguration(), is(expectedPackageConfigurations)); }