/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.control.gui.plugin; import java.util.Collection; import java.util.Iterator; import java.util.ListResourceBundle; import javax.swing.AbstractAction; import javax.swing.Action; import junit.framework.TestCase; import net.codjo.agent.UserId; import net.codjo.control.gui.ControlGuiContext; import net.codjo.control.gui.data.DbFilterData; import net.codjo.control.gui.data.DetailData; import net.codjo.control.gui.data.QuarantineGuiData; import net.codjo.control.gui.data.TabData; import net.codjo.control.gui.data.WindowData; import net.codjo.i18n.common.TranslationManager; import net.codjo.mad.client.plugin.MadConnectionPluginMock; import net.codjo.mad.gui.base.GuiConfigurationMock; import net.codjo.mad.gui.framework.LocalGuiContext; import net.codjo.security.common.api.UserMock; import net.codjo.workflow.common.schedule.WorkflowConfiguration; import net.codjo.workflow.gui.plugin.WorkflowGuiPlugin; public class QuarantineManagerTest extends TestCase { private QuarantineManager manager; private GuiConfigurationMock configurationMock; private WorkflowConfiguration workflowConfiguration; public void test_action() throws Exception { Action action = configurationMock.getLastRegisteredAction(); assertNotNull(action); assertNotNull(action.getValue(AbstractAction.SMALL_ICON)); assertEquals("Emetteur", action.getValue(AbstractAction.NAME)); assertEquals("Affiche la liste des emetteurs", action.getValue(AbstractAction.SHORT_DESCRIPTION)); } public void test_guiData() throws Exception { Collection<QuarantineGuiData> dataList = manager.getList().getDataList(); assertEquals(4, dataList.size()); QuarantineGuiData guiData = getLastData(dataList); assertSame(workflowConfiguration, guiData.getWorkflowConfiguration()); WindowData windowData = guiData.getWindow(); DetailData detailData = guiData.getDetail(); assertEquals("Liste quarantaine des emetteurs", windowData.getTitle()); assertEquals("QUserIssuerWindow", windowData.getPreference()); assertEquals("issuerCode", ((DbFilterData)windowData.getDbFilters().toArray()[0]).getDbFilterColumnName()); assertEquals(3, windowData.getDbFilters().size()); assertEquals("source", ((DbFilterData)windowData.getDbFilters().toArray()[1]).getDbFilterColumnName()); assertEquals("net.codjo.control.gui.plugin.ComboBoxRenderer", ((DbFilterData)windowData.getDbFilters().toArray()[1]).getRenderer()); assertEquals("user", ((DbFilterData)windowData.getDbFilters().toArray()[2]).getDbFilterColumnName()); assertNull("", ((DbFilterData)windowData.getDbFilters().toArray()[2]).getRenderer()); assertEquals("Detail quarantaine des emetteurs", detailData.getTitle()); assertEquals(5, detailData.getNbFieldsByPage()); Collection tabs = detailData.getTabs(); Iterator tabIter = tabs.iterator(); TabData caracTab = (TabData)tabIter.next(); assertEquals("Caracteristiques", caracTab.getTitle()); Collection caracFields = caracTab.getFields(); Iterator caracFieldsIter = caracFields.iterator(); assertEquals("issuerCode", caracFieldsIter.next()); assertEquals("issuerName", caracFieldsIter.next()); assertFalse(caracFieldsIter.hasNext()); TabData auditTab = (TabData)tabIter.next(); assertEquals("Audit", auditTab.getTitle()); Collection auditFields = auditTab.getFields(); Iterator auditFieldsIter = auditFields.iterator(); assertEquals("date", auditFieldsIter.next()); assertEquals("user", auditFieldsIter.next()); assertEquals("source", auditFieldsIter.next()); assertFalse(auditFieldsIter.hasNext()); assertFalse(tabIter.hasNext()); } private QuarantineGuiData getLastData(Collection<QuarantineGuiData> dataList) { QuarantineGuiData guiData = null; for (QuarantineGuiData aDataList : dataList) { guiData = aDataList; } return guiData; } @Override protected void setUp() throws Exception { UserId userId = UserId.createId("login", "pwd"); workflowConfiguration = new WorkflowConfiguration(); manager = new QuarantineManager(QuarantineManager.class.getResource("QuarantineGuiTest.xml"), userId, workflowConfiguration); ControlGuiContext defaultGuiContext = new ControlGuiContext(); defaultGuiContext.setUser(new UserMock().mockIsAllowedTo(true)); LocalGuiContext guiCtxt = new LocalGuiContext(defaultGuiContext); configurationMock = new GuiConfigurationMock(); manager.addMenuTo(new ControlGuiPlugin(new MadConnectionPluginMock(), new WorkflowGuiPlugin()), configurationMock, guiCtxt); } }