/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.segmentation.gui.settings; import net.codjo.mad.client.request.Field; import net.codjo.mad.client.request.Result; import net.codjo.mad.client.request.Row; import net.codjo.mad.gui.framework.DefaultGuiContext; import net.codjo.mad.gui.request.DetailDataSource; import net.codjo.mad.gui.request.ListDataSource; import net.codjo.security.common.api.UserMock; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; /** * Classe de test de {@link AxisTreeLogic}. */ public class AxisTreeLogicTest extends TestCase { private AxisTreeLogic axisTreeLogic; private ListDataSource sonDataSource; private Row sonRow1; private Row sonRow3; private Row sonRow2; private Row sonRow4; private Row sonRow5; private Row sonRow6; /** * Test permettant de v�rifier la mise � jour du ListDataSource apr�s s�lection d'un �l�ment de l'arbre. * * @throws Exception */ public void test_selection() throws Exception { final AxisTree gui = axisTreeLogic.getGui(); gui.expandRow(0); gui.expandRow(1); assertNull(sonDataSource.getSelectedRow()); gui.setSelectionRow(0); assertNull(sonDataSource.getSelectedRow()); gui.setSelectionRow(1); assertEquals(sonRow1, sonDataSource.getSelectedRow()); axisTreeLogic.getGui().setSelectionRow(0); assertNull(sonDataSource.getSelectedRow()); gui.setSelectionRow(2); assertEquals(sonRow2, sonDataSource.getSelectedRow()); gui.setSelectionRow(3); assertEquals(sonRow3, sonDataSource.getSelectedRow()); } public void test_addSleeve() throws Exception { axisTreeLogic.getGui().setSelectionRow(1); assertEquals(6, sonDataSource.getRowCount()); axisTreeLogic.addSleeve(); assertEquals(7, sonDataSource.getRowCount()); } public void test_addFolder() throws Exception { axisTreeLogic.getGui().setSelectionRow(1); assertEquals(6, sonDataSource.getRowCount()); axisTreeLogic.addFolder(); assertEquals(7, sonDataSource.getRowCount()); } public void test_delete() throws Exception { final AxisTree gui = axisTreeLogic.getGui(); gui.expandRow(0); gui.expandRow(3); gui.expandRow(1); axisTreeLogic.getGui().setSelectionRow(3); assertEquals(6, sonDataSource.getRowCount()); axisTreeLogic.delete(); assertEquals(sonRow3, sonDataSource.getRemovedRow()[0]); assertEquals(5, sonDataSource.getRowCount()); assertEquals("01-2", sonRow4.getFieldValue("sleeveCode")); assertEquals("02-2.1", sonRow5.getFieldValue("sleeveCode")); assertEquals("03-2.1.1", sonRow6.getFieldValue("sleeveCode")); axisTreeLogic.getGui().setSelectionRow(1); axisTreeLogic.delete(); assertEquals(3, sonDataSource.getRowCount()); axisTreeLogic.getGui().setSelectionRow(0); axisTreeLogic.delete(); assertEquals(0, sonDataSource.getRowCount()); } @Override protected void setUp() throws Exception { DefaultGuiContext defaultGuiContext = new DefaultGuiContext(); defaultGuiContext.setUser(new UserMock()); DetailDataSource fatherDataSource = new DetailDataSource(defaultGuiContext); fatherDataSource.declare("classificationName"); fatherDataSource.declare("classificationId"); fatherDataSource.setFieldValue("classificationName", "root"); fatherDataSource.setFieldValue("classificationId", "1"); sonDataSource = new ListDataSource(); sonDataSource.setColumns(new String[]{ "sleeveId", "sleeveRowId", "sleeveCode", "sleeveName", "formula", "terminalElement", "sleeveDustbin" }); Result result = new Result(); sonRow1 = buildRow("01-1", "1"); result.addRow(sonRow1); sonRow2 = buildRow("02-1.1", "11"); result.addRow(sonRow2); sonRow3 = buildRow("01-2", "2"); result.addRow(sonRow3); sonRow4 = buildRow("01-3", "3"); result.addRow(sonRow4); sonRow5 = buildRow("02-3.1", "31"); result.addRow(sonRow5); sonRow6 = buildRow("03-3.1.1", "311"); result.addRow(sonRow6); sonDataSource.setLoadResult(result); AxisTree axisTree = new AxisTree(); axisTree.setClassificationStructureGui(new ClassificationStructureGui("test")); axisTreeLogic = new AxisTreeLogic(fatherDataSource, sonDataSource, axisTree); } private Row buildRow(String code, String name) { Row row = new Row(); List fields = new ArrayList(); fields.add(new Field("sleeveId", name)); fields.add(new Field("sleeveRowId", name)); fields.add(new Field("sleeveCode", code)); fields.add(new Field("sleeveName", name)); fields.add(new Field("formula", name)); fields.add(new Field("terminalElement", name)); fields.add(new Field("sleeveDustbin", name)); row.setFields(fields); return row; } }