Search in sources :

Example 6 with QcadooPluginPlugin

use of com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin in project qcadoo by qcadoo.

the class PluginAccessorTest method shouldNotDeleteTemporaryPlugins.

@Test
public void shouldNotDeleteTemporaryPlugins() throws Exception {
    // given
    QcadooPluginPlugin pluginsPlugin1 = mock(QcadooPluginPlugin.class);
    given(pluginsPlugin1.getState()).willReturn(PluginState.TEMPORARY.toString());
    QcadooPluginPlugin pluginsPlugin2 = mock(QcadooPluginPlugin.class);
    given(pluginsPlugin2.getState()).willReturn(PluginState.ENABLED.toString());
    Set<InternalPlugin> pluginsFromDescriptor = Sets.newHashSet();
    Set<QcadooPluginPlugin> pluginsFromDatabase = Sets.newHashSet(pluginsPlugin1, pluginsPlugin2);
    given(pluginDescriptorParser.loadPlugins()).willReturn(pluginsFromDescriptor);
    given(pluginDao.list()).willReturn(pluginsFromDatabase);
    // when
    pluginAccessor.init();
    verify(pluginDao, never()).delete(pluginsPlugin1);
    verify(pluginDao).delete(pluginsPlugin2);
}
Also used : QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) Test(org.junit.Test)

Example 7 with QcadooPluginPlugin

use of com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin in project qcadoo by qcadoo.

the class DefaultPluginDao method save.

@Override
@Transactional(L_PLUGIN)
public void save(final Plugin plugin) {
    QcadooPluginPlugin existingPlugin = get(plugin.getIdentifier());
    if (existingPlugin == null) {
        existingPlugin = new QcadooPluginPlugin(plugin);
    } else {
        existingPlugin.setState(plugin.getState().toString());
        existingPlugin.setVersion(plugin.getVersion().toString());
        existingPlugin.setIsSystem(plugin.isSystemPlugin());
        existingPlugin.setGroupName(plugin.getPluginInformation() == null ? null : plugin.getPluginInformation().getGroup());
        existingPlugin.setLicense(plugin.getPluginInformation() == null ? null : plugin.getPluginInformation().getLicense());
    }
    save(existingPlugin);
}
Also used : QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) Transactional(org.springframework.transaction.annotation.Transactional)

Example 8 with QcadooPluginPlugin

use of com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin in project qcadoo by qcadoo.

the class PluginAccessorTest method shouldPerformEnableOnEnablingPlugins.

@SuppressWarnings("unchecked")
@Test
public void shouldPerformEnableOnEnablingPlugins() throws Exception {
    // given
    InternalPlugin plugin1 = mock(InternalPlugin.class);
    QcadooPluginPlugin pluginsPlugin1 = mock(QcadooPluginPlugin.class);
    given(plugin1.getIdentifier()).willReturn("identifier1");
    given(pluginsPlugin1.getIdentifier()).willReturn("identifier1");
    given(pluginsPlugin1.getState()).willReturn("ENABLING");
    given(pluginsPlugin1.getVersion()).willReturn("0.0.0");
    given(plugin1.hasState(PluginState.ENABLING)).willReturn(true);
    InternalPlugin plugin2 = mock(InternalPlugin.class);
    QcadooPluginPlugin pluginsPlugin2 = mock(QcadooPluginPlugin.class);
    given(plugin2.getIdentifier()).willReturn("identifier2");
    given(pluginsPlugin2.getIdentifier()).willReturn("identifier2");
    given(pluginsPlugin2.getState()).willReturn("ENABLING");
    given(pluginsPlugin2.getVersion()).willReturn("0.0.0");
    given(plugin2.hasState(PluginState.ENABLING)).willReturn(true);
    InternalPlugin plugin3 = mock(InternalPlugin.class);
    QcadooPluginPlugin pluginsPlugin3 = mock(QcadooPluginPlugin.class);
    given(pluginsPlugin3.getIdentifier()).willReturn("identifier3");
    given(pluginsPlugin3.getVersion()).willReturn("0.0.0");
    given(pluginsPlugin3.getState()).willReturn("DISABLED");
    given(plugin3.getIdentifier()).willReturn("identifier3");
    Set<InternalPlugin> pluginsFromDescriptor = Sets.newHashSet(plugin1, plugin2, plugin3);
    Set<QcadooPluginPlugin> pluginsFromDatabase = Sets.newHashSet(pluginsPlugin1, pluginsPlugin2, pluginsPlugin3);
    List<Plugin> sortedPluginsToInitialize = Lists.newArrayList((Plugin) plugin2, (Plugin) plugin1);
    given(pluginDependencyManager.sortPluginsInDependencyOrder(Mockito.anyCollectionOf(Plugin.class), Mockito.anyMap())).willReturn(sortedPluginsToInitialize);
    given(pluginDescriptorParser.loadPlugins()).willReturn(pluginsFromDescriptor);
    given(pluginDao.list()).willReturn(pluginsFromDatabase);
    // when
    pluginAccessor.init();
    pluginAccessor.onApplicationEvent(null);
    // then
    InOrder inOrder = inOrder(plugin2, plugin1, moduleFactoryAccessor);
    inOrder.verify(moduleFactoryAccessor).init(sortedPluginsToInitialize);
    inOrder.verify(plugin2).changeStateTo(PluginState.ENABLED);
    inOrder.verify(plugin1).changeStateTo(PluginState.ENABLED);
    verify(plugin3, never()).changeStateTo(PluginState.ENABLED);
    verify(pluginDao).save(plugin1);
    verify(pluginDao).save(plugin2);
    verify(pluginDao, never()).save(plugin3);
}
Also used : InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) InOrder(org.mockito.InOrder) QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) Plugin(com.qcadoo.plugin.api.Plugin) InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) Test(org.junit.Test)

Example 9 with QcadooPluginPlugin

use of com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin in project qcadoo by qcadoo.

the class PluginAccessorTest method shouldFailOnPluginDowngrade.

@Test(expected = IllegalStateException.class)
public void shouldFailOnPluginDowngrade() throws Exception {
    // given
    InternalPlugin plugin11 = mock(InternalPlugin.class);
    given(plugin11.getIdentifier()).willReturn("identifier11");
    QcadooPluginPlugin pluginsPlugin12 = mock(QcadooPluginPlugin.class);
    given(pluginsPlugin12.getIdentifier()).willReturn("identifier11");
    given(pluginsPlugin12.getVersion()).willReturn("0.0.0");
    given(pluginsPlugin12.getState()).willReturn("ENABLED");
    given(plugin11.compareVersion(new Version(pluginsPlugin12.getVersion()))).willReturn(-1);
    Set<InternalPlugin> pluginsFromDescriptor = Sets.newHashSet(plugin11);
    Set<QcadooPluginPlugin> pluginsFromDatabase = Sets.newHashSet(pluginsPlugin12);
    given(pluginDescriptorParser.loadPlugins()).willReturn(pluginsFromDescriptor);
    given(pluginDao.list()).willReturn(pluginsFromDatabase);
    // when
    pluginAccessor.init();
}
Also used : InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) Version(com.qcadoo.plugin.api.Version) Test(org.junit.Test)

Example 10 with QcadooPluginPlugin

use of com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin in project qcadoo by qcadoo.

the class PluginAccessorTest method shouldPerformInit.

@SuppressWarnings("unchecked")
@Test
public void shouldPerformInit() throws Exception {
    // given
    InternalPlugin plugin1 = mock(InternalPlugin.class, "plugin1");
    QcadooPluginPlugin pluginsPlugin1 = mock(QcadooPluginPlugin.class, "plugin1");
    given(plugin1.getIdentifier()).willReturn("identifier1");
    given(pluginsPlugin1.getIdentifier()).willReturn("identifier1");
    given(pluginsPlugin1.getState()).willReturn("ENABLED");
    given(pluginsPlugin1.getVersion()).willReturn("0.0.0");
    InternalPlugin plugin2 = mock(InternalPlugin.class, "plugin2");
    QcadooPluginPlugin pluginsPlugin2 = mock(QcadooPluginPlugin.class, "plugin2");
    given(plugin2.getIdentifier()).willReturn("identifier2");
    given(pluginsPlugin2.getIdentifier()).willReturn("identifier2");
    given(pluginsPlugin2.getVersion()).willReturn("0.0.0");
    given(pluginsPlugin2.getState()).willReturn("ENABLED");
    Set<InternalPlugin> pluginsFromDescriptor = Sets.newHashSet(plugin1, plugin2);
    Set<QcadooPluginPlugin> pluginsFromDatabase = Sets.newHashSet(pluginsPlugin1, pluginsPlugin2);
    List<Plugin> sortedPluginsToInitialize = Lists.newArrayList((Plugin) plugin2, (Plugin) plugin1);
    given(pluginDependencyManager.sortPluginsInDependencyOrder(Mockito.anyCollectionOf(Plugin.class), Mockito.anyMap())).willReturn(sortedPluginsToInitialize);
    given(pluginDescriptorParser.loadPlugins()).willReturn(pluginsFromDescriptor);
    given(pluginDao.list()).willReturn(pluginsFromDatabase);
    // when
    pluginAccessor.init();
    pluginAccessor.onApplicationEvent(null);
    // then
    InOrder inOrder = inOrder(plugin2, plugin1, moduleFactoryAccessor);
    inOrder.verify(moduleFactoryAccessor).init(sortedPluginsToInitialize);
}
Also used : InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) InOrder(org.mockito.InOrder) QcadooPluginPlugin(com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin) Plugin(com.qcadoo.plugin.api.Plugin) InternalPlugin(com.qcadoo.plugin.internal.api.InternalPlugin) Test(org.junit.Test)

Aggregations

QcadooPluginPlugin (com.qcadoo.model.beans.qcadooPlugin.QcadooPluginPlugin)12 InternalPlugin (com.qcadoo.plugin.internal.api.InternalPlugin)11 Test (org.junit.Test)9 Plugin (com.qcadoo.plugin.api.Plugin)8 Version (com.qcadoo.plugin.api.Version)4 InOrder (org.mockito.InOrder)2 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)1 ArrayList (java.util.ArrayList)1 Transactional (org.springframework.transaction.annotation.Transactional)1