/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.gui.plugin;
import net.codjo.broadcast.gui.AnotherPreferenceMock;
import net.codjo.broadcast.gui.GuiPreference;
import net.codjo.broadcast.gui.GuiPreferencesManager;
import net.codjo.broadcast.gui.PreferenceMock;
import net.codjo.mad.client.plugin.MadConnectionPluginMock;
import net.codjo.mad.gui.base.GuiConfiguration;
import net.codjo.mad.gui.base.GuiConfigurationMock;
import net.codjo.mad.gui.framework.DefaultGuiContext;
import net.codjo.mad.gui.plugin.MadGuiPlugin;
import net.codjo.mad.gui.plugin.MadGuiPluginMock;
import net.codjo.mad.gui.request.Preference;
import net.codjo.mad.gui.request.PreferenceFactory;
import net.codjo.test.common.AssertUtil;
import net.codjo.workflow.gui.plugin.WorkflowGuiPlugin;
import junit.framework.TestCase;
/**
*
*/
public class BroadcastGuiPluginTest extends TestCase {
private static final String PREFERENCE_CONFIG =
"<?xml version='1.0' encoding='ISO-8859-1'?> "
+ "<preferenceList xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
+ " xsi:noNamespaceSchemaLocation='preference.xsd'> "
+ " <preference id='CountryList' "
+ " detailWindowClassName='"
+ BroadcastGuiPluginTest.class.getName() + "'> "
+ " <selectAll>selectAllCountry</selectAll> "
+ " <selectByPk>selectCountryById</selectByPk> "
+ " <update>updateCountry</update> "
+ " <delete>deleteCountry</delete> "
+ " <insert>newCountry</insert> "
+ " <requetor>allCountry</requetor> "
+ " <column fieldName='countryCode' label='Code' preferredSize='20'/> "
+ " <column fieldName='countryName' label='Libell�' preferredSize='450'/> "
+ " </preference> "
+ "</preferenceList>";
public void test_initPlugin() throws Exception {
GuiPreferencesManager.cancelSingleton();
Class[] preferenceClasses = new Class[]{PreferenceMock.class, AnotherPreferenceMock.class};
assertEquals(0, GuiPreferencesManager.getGuiPreferencesManager().getFamilies().length);
//noinspection unchecked
BroadcastGuiPlugin plugin = new BroadcastGuiPlugin(preferenceClasses,
new MadConnectionPluginMock(),
new WorkflowGuiPlugin());
plugin.initGui(createGuiConfiguration());
String[] families = GuiPreferencesManager.getGuiPreferencesManager().getFamilies();
AssertUtil.assertUnorderedEquals(new String[]{"Fonky Family", "Addams Family"}, families);
}
public void test_loadBroadcastPreference() throws Exception {
BroadcastGuiPlugin broadcastGuiPlugin = new BroadcastGuiPlugin(createMadGuiPlugin(),
new MadConnectionPluginMock(),
new WorkflowGuiPlugin());
broadcastGuiPlugin.loadBroadcastPreferences();
Preference preference = PreferenceFactory.getPreference("BroadcastSectionsWindow");
assertNotNull(preference);
assertEquals(3, preference.getColumns().size());
preference = PreferenceFactory.getPreference("BroadcastFilesWindow");
assertNotNull(preference);
assertEquals(3, preference.getColumns().size());
preference = PreferenceFactory.getPreference("BroadcastFileContentsWindow");
assertNotNull(preference);
assertEquals(3, preference.getColumns().size());
preference = PreferenceFactory.getPreference("BroadcastColumnsWindow");
assertNotNull(preference);
assertEquals(6, preference.getColumns().size());
preference = PreferenceFactory.getPreference("CountryList");
assertNotNull(preference);
assertEquals(2, preference.getColumns().size());
}
public void test_loadBroadcastPreference_withBuilder() throws Exception {
BroadcastGuiPlugin broadcastGuiPlugin = new BroadcastGuiPlugin(createMadGuiPlugin(),
new MadConnectionPluginMock(),
new WorkflowGuiPlugin());
broadcastGuiPlugin.getConfiguration().addGuiPreference(PreferenceMock.class);
broadcastGuiPlugin.getConfiguration().addGuiPreference(new GuiPreferenceBuilder() {
public GuiPreference createPreference(GuiConfiguration guiConfiguration) throws Exception {
return new AnotherPreferenceMock(guiConfiguration.getStructureReader());
}
});
broadcastGuiPlugin.initGui(createGuiConfiguration());
String[] families = GuiPreferencesManager.getGuiPreferencesManager().getFamilies();
AssertUtil.assertUnorderedEquals(new String[]{"Fonky Family", "Addams Family"}, families);
}
private GuiConfigurationMock createGuiConfiguration() {
GuiConfigurationMock configuration = new GuiConfigurationMock();
DefaultGuiContext guiContext = (DefaultGuiContext)configuration.getGuiContext();
guiContext.putProperty(BroadcastGuiPlugin.BROADCAST_VTOM_PARAMETER, "to_export.txt");
return configuration;
}
private MadGuiPlugin createMadGuiPlugin() throws Exception {
MadGuiPlugin madGuiPlugin = new MadGuiPluginMock(PREFERENCE_CONFIG);
madGuiPlugin.initGui(new GuiConfigurationMock());
return madGuiPlugin;
}
}