DependencyProvider { public <T> List<T> getFacets(Class<? extends Plugin> pluginClass, Class<T> facet) { assertExplicitDependency(pluginClass, facet); return facetRegistry.getFacets(facet); } DependencyProvider(PluginRegistry pluginRegistry, FacetRegistry facetRegistry); List<Plugin> getDependenciesOf(Class<? extends Plugin> pluginClass); List<Plugin> getRequiredPluginsOf(Class<? extends Plugin> pluginClass); List<Plugin> getDependentPluginsOf(Class<? extends Plugin> pluginClass); List<T> getFacets(Class<? extends Plugin> pluginClass, Class<T> facet); T getFacet(Class<? extends Plugin> pluginClass, Class<T> facet);  }
@Test public void test_provide_facet_dependencies_never_return_null() { List<Facet2> dependencies = underTest.getFacets(WithDepsPlugin.class, Facet2.class); Assertions.assertThat(dependencies).isNotNull(); }
@Test(expected = KernelException.class) public void test_provide_facet_not_required_dependency() { underTest.getFacets(NoDepsPlugin.class, Facet1.class); }
@Test public void test_provide_facet_dependencies() { List<Facet1> dependencies = underTest.getFacets(WithDepsPlugin.class, Facet1.class); Assertions.assertThat(dependencies).hasSize(2); Assertions.assertThat(dependencies).containsOnly(requiredPlugin1, requiredPlugin2); }