use of com.qcadoo.plugin.api.PluginDependencyInformation in project qcadoo by qcadoo.
the class PluginDependencyManagerTest method shouldCheckDependenciesDependenciesAndReturnMultipleDependenciesForDisableWhenMultiplePlugins.
@Test
public void shouldCheckDependenciesDependenciesAndReturnMultipleDependenciesForDisableWhenMultiplePlugins() throws Exception {
// given
given(plugin2.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo1));
given(plugin2.getState()).willReturn(PluginState.ENABLED);
given(plugin3.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo2));
given(plugin3.getState()).willReturn(PluginState.ENABLED);
given(plugin4.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo3));
given(plugin4.getState()).willReturn(PluginState.ENABLED);
Set<Plugin> plugins = new HashSet<Plugin>();
plugins.add(plugin1);
plugins.add(plugin2);
plugins.add(plugin3);
plugins.add(plugin4);
given(pluginAccessor.getPlugins()).willReturn(plugins);
List<Plugin> argumentPlugins = new ArrayList<Plugin>();
argumentPlugins.add(plugin1);
argumentPlugins.add(plugin3);
// when
PluginDependencyResult result = manager.getDependenciesToDisable(argumentPlugins, pluginStatusResolver);
// then
assertEquals(0, result.getDependenciesToEnable().size());
assertEquals(0, result.getUnsatisfiedDependencies().size());
assertEquals(2, result.getDependenciesToDisable().size());
assertTrue(result.getDependenciesToDisable().contains(new PluginDependencyInformation("testPlugin2")));
assertTrue(result.getDependenciesToDisable().contains(new PluginDependencyInformation("testPlugin4")));
}
use of com.qcadoo.plugin.api.PluginDependencyInformation in project qcadoo by qcadoo.
the class PluginDependencyManagerTest method shouldReturnSingleEnabledDependencyForOnePlugin.
@Test
public void shouldReturnSingleEnabledDependencyForOnePlugin() throws Exception {
// given
given(plugin2.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo1));
given(plugin2.getState()).willReturn(PluginState.ENABLED);
Set<Plugin> plugins = new HashSet<Plugin>();
plugins.add(plugin1);
plugins.add(plugin2);
plugins.add(plugin3);
given(pluginAccessor.getPlugins()).willReturn(plugins);
// when
PluginDependencyResult result = manager.getDependenciesToDisable(singletonList((Plugin) plugin1), pluginStatusResolver);
// then
assertEquals(0, result.getDependenciesToEnable().size());
assertEquals(0, result.getUnsatisfiedDependencies().size());
assertEquals(1, result.getDependenciesToDisable().size());
assertTrue(result.getDependenciesToDisable().contains(new PluginDependencyInformation("testPlugin2")));
}
use of com.qcadoo.plugin.api.PluginDependencyInformation in project qcadoo by qcadoo.
the class PluginDependencyManagerTest method shouldReturnDisabledDependenciesForMultiplePluginsHardExample.
@Test
public void shouldReturnDisabledDependenciesForMultiplePluginsHardExample() throws Exception {
// given
given(plugin1.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo2));
given(plugin2.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo3));
given(plugin3.getRequiredPlugins()).willReturn(Collections.singleton(dependencyInfo4));
given(plugin2.getState()).willReturn(PluginState.TEMPORARY);
given(plugin3.getState()).willReturn(PluginState.TEMPORARY);
given(plugin4.getState()).willReturn(PluginState.TEMPORARY);
given(pluginAccessor.getPlugin("testPlugin2")).willReturn(plugin2);
given(pluginAccessor.getPlugin("testPlugin3")).willReturn(plugin3);
given(pluginAccessor.getPlugin("testPlugin4")).willReturn(plugin4);
List<Plugin> plugins = new ArrayList<Plugin>();
plugins.add(plugin1);
plugins.add(plugin3);
// when
PluginDependencyResult result = manager.getDependenciesToEnable(plugins, pluginStatusResolver);
// then
assertFalse(result.isCyclic());
assertEquals(2, result.getDependenciesToEnable().size());
assertTrue(result.getDependenciesToEnable().contains(new PluginDependencyInformation("testPlugin2")));
assertTrue(result.getDependenciesToEnable().contains(new PluginDependencyInformation("testPlugin4")));
assertEquals(0, result.getUnsatisfiedDependencies().size());
assertEquals(0, result.getDependenciesToDisable().size());
}
use of com.qcadoo.plugin.api.PluginDependencyInformation in project qcadoo by qcadoo.
the class PluginDescriptorParserTest method shouldHavePluginDependenciesInformationsForXml1.
@Test
public void shouldHavePluginDependenciesInformationsForXml1() {
// given
// when
Plugin result = parser.parse(xmlFile1);
// then
Set<PluginDependencyInformation> dependencies = result.getRequiredPlugins();
assertEquals(3, dependencies.size());
assertTrue(dependencies.contains(new PluginDependencyInformation("testPluginDependency1", new VersionOfDependency("(1.2.3,2.3.4]"))));
assertTrue(dependencies.contains(new PluginDependencyInformation("testPluginDependency2", new VersionOfDependency("1.1.1"))));
assertTrue(dependencies.contains(new PluginDependencyInformation("testPluginDependency3", new VersionOfDependency(null))));
}
use of com.qcadoo.plugin.api.PluginDependencyInformation in project qcadoo by qcadoo.
the class PluginManagerTest method shouldNotEnablePluginWithDisabledDependencies.
@Test
public void shouldNotEnablePluginWithDisabledDependencies() throws Exception {
// given
given(plugin.hasState(PluginState.DISABLED)).willReturn(true);
PluginDependencyResult pluginDependencyResult = PluginDependencyResultImpl.dependenciesToEnable(Collections.singleton(new PluginDependencyInformation("unknownplugin", new VersionOfDependency(""))));
given(pluginDependencyManager.getDependenciesToEnable(Mockito.eq(singletonList((Plugin) plugin)), Mockito.any(SimplePluginStatusResolver.class))).willReturn(pluginDependencyResult);
// when
PluginOperationResult pluginOperationResult = pluginManager.enablePlugin("pluginname");
// then
verify(plugin, never()).changeStateTo(PluginState.ENABLED);
verify(pluginDao, never()).save(plugin);
verify(pluginAccessor, never()).savePlugin(plugin);
assertFalse(pluginOperationResult.isSuccess());
assertEquals(PluginOperationStatus.DEPENDENCIES_TO_ENABLE, pluginOperationResult.getStatus());
assertEquals(0, pluginOperationResult.getPluginDependencyResult().getUnsatisfiedDependencies().size());
assertEquals(1, pluginOperationResult.getPluginDependencyResult().getDependenciesToEnable().size());
assertEquals(1, pluginOperationResult.getPluginDependencyResult().getDependenciesToEnable().size());
assertTrue(pluginOperationResult.getPluginDependencyResult().getDependenciesToEnable().contains(new PluginDependencyInformation("unknownplugin", new VersionOfDependency(""))));
}
Aggregations