package org.joget.plugin.beanshell;
import org.joget.plugin.base.Plugin;
import org.joget.plugin.base.PluginManager;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.Assert;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:pluginBaseApplicationContext.xml", "classpath:directoryApplicationContext.xml"})
public class TestBeanShellPlugin {
@Autowired
PluginManager pluginManager;
private String pluginFile = "target/wflow-plugin-beanshell-3.0-SNAPSHOT.jar";
private String pluginName = "org.joget.plugin.beanshell.BeanShellPlugin";
public String getPluginLocation() {
return pluginFile;
}
public String getPlugin() {
return pluginName;
}
@Test
public void testPluginManager() {
Assert.notNull(pluginManager);
}
@Test
public void testPlugin() {
Plugin plugin = pluginManager.getPlugin(getPlugin());
System.out.println(" PLUGIN: " + plugin);
Map props = new HashMap();
props.put("pluginManager", pluginManager);
String script = ""
+ "import org.joget.directory.model.dao.organization.*;"
+ "import java.util.*;"
+ "OrganizationDao dao = pluginManager.getBean(\"organizationDao\");"
+ "Collection orgList = dao.getOrganizationList(null, \"name\", false, 0, 100);"
+ "for (Object org: orgList) {"
+ " System.out.println(org);"
+ "}"
+ "Map map = new org.apache.commons.collections.SequencedHashMap();"
+ "map.put(\"2\",\"2\");"
+ "map.put(\"1\",\"1\");"
+ "map.put(\"3\",\"3\");"
+ "System.out.println(map);"
+ "org.apache.commons.mail.MultiPartEmail email = new org.apache.commons.mail.MultiPartEmail();"
+ "System.out.println(email);"
;
props.put("script", script);
pluginManager.testPlugin(getPlugin(), getPluginLocation(), props, true);
}
@Test
public void testList() {
System.out.println(" ===testList=== ");
Collection<Plugin> list = pluginManager.list();
for (Plugin p : list) {
System.out.println(" plugin: " + p.getName() + "; " + p.getClass().getName());
}
//Assert.isTrue(list.size() > 0);
}
}