/******************************************************************************* * Copyright 2015 xWic group (http://www.xwic.de) * * Licensed under the Apache License, Version 2.0 (the "License"). * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *******************************************************************************/ package de.jwic.controls; import de.jwic.base.Control; import de.jwic.base.IControlContainer; import de.jwic.events.ElementSelectedEvent; import de.jwic.events.ElementSelectedListener; import de.jwic.test.ControlTestCase; /** * @author Florian Lippisch */ public class ListControlTest extends ControlTestCase { protected boolean eventTriggered = false; protected ListControl list = null; private class ListControlDummy extends ListControl { public ListControlDummy(IControlContainer container, String name) { super(container, name); } } /* (non-Javadoc) * @see de.jwic.test.ControlTestCase#createControl(de.jwic.base.IControlContainer) */ public Control createControl(IControlContainer container) { list = new ListControlDummy(container, null); return list; } /** * Test method for {@link de.jwic.controls.ListControl#addElement(java.lang.String, java.lang.String)}. */ public void testAddElement() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); assertEquals(3, list.getElements().size()); } /** * Test method for {@link de.jwic.controls.ListControl#clear()}. */ public void testClear() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); assertEquals(3, list.getElements().size()); list.setSelectedKey("key1"); list.clear(); assertEquals(0, list.getElements().size()); // selected key must have been "cleared" assertEquals("", list.getSelectedKey()); } /** * Test method for {@link de.jwic.controls.ListControl#getSelectedKey()}. */ public void testGetSelectedKey() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); // method 1 -> direct list.setSelectedKey("key2"); assertEquals("key2", list.getSelectedKey()); // method 2 -> UI updateField(list, list.getField().getName(), "key3"); updateDone(); assertEquals("key3", list.getSelectedKey()); } /** * Test method for {@link de.jwic.controls.ListControl#getSelectedKeys()}. */ public void testGetSelectedKeys() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); // method 2 -> UI updateField(list, list.getField().getName(), new String[] {"key1", "key3"}); updateDone(); assertEquals(2, list.getSelectedKeys().length); assertEquals("key1", list.getSelectedKeys()[0]); assertEquals("key3", list.getSelectedKeys()[1]); } /** * Test method for {@link de.jwic.controls.ListControl#isKeySelected(java.lang.String)}. */ public void testIsKeySelected() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); // method 2 -> UI updateField(list, list.getField().getName(), new String[] {"key1", "key3"}); updateDone(); assertTrue(list.isKeySelected("key1")); assertFalse(list.isKeySelected("key2")); assertTrue(list.isKeySelected("key3")); } /** * Test method for {@link de.jwic.controls.ListControl#removeElement(java.lang.String)}. */ public void testRemoveElement() { list.addElement("Title 1", "key1"); list.addElement("Title 2", "key2"); list.addElement("Title 3", "key3"); assertEquals(3, list.getElements().size()); list.setSelectedKey("key2"); list.removeElement("key1"); list.removeElement("key2"); assertEquals(1, list.getElements().size()); assertEquals("", list.getSelectedKey()); } /** * Test if the event is triggered correctly. */ public void testEvent() { list.addElement("Test 1", "1"); list.addElement("Test 2", "2"); list.addElementSelectedListener(new ElementSelectedListener() { public void elementSelected(ElementSelectedEvent event) { eventTriggered = true; assertEquals(list.getSelectedKey(), "2"); assertEquals(event.getElement(), "2"); } }); updateField(list.getField().getName(), "2"); updateDone(); assertEquals("2", list.getSelectedKey()); assertTrue(eventTriggered); } }