/*
* Copyright (c) 2004-2011 Marco Maccaferri and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Marco Maccaferri - initial API and implementation
*/
package org.eclipsetrader.ui.internal.views;
import junit.framework.TestCase;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
public class BoxViewerTest extends TestCase {
private Shell shell;
private Dialog dlg;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
Display display = Display.getCurrent();
shell = new Shell(display);
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
if (dlg != null) {
dlg.close();
dlg = null;
}
shell.dispose();
while (Display.getDefault().readAndDispatch()) {
;
}
}
public void testDoSetItemCount() throws Exception {
BoxViewer viewer = new BoxViewer(shell);
assertEquals(0, viewer.doGetItemCount());
viewer.doSetItemCount(5);
assertEquals(5, viewer.doGetItemCount());
assertEquals(5, viewer.doGetItems().length);
}
public void testDoShrinkItemCount() throws Exception {
BoxViewer viewer = new BoxViewer(shell);
assertEquals(0, viewer.doGetItemCount());
viewer.doSetItemCount(5);
Item[] items = viewer.doGetItems();
viewer.doSetItemCount(3);
assertEquals(3, viewer.doGetItemCount());
assertFalse(items[0].isDisposed());
assertFalse(items[1].isDisposed());
assertFalse(items[2].isDisposed());
assertTrue(items[3].isDisposed());
assertTrue(items[4].isDisposed());
}
public void testDoSetItemCountSetsMenu() throws Exception {
Menu menu = new Menu(shell);
BoxViewer viewer = new BoxViewer(shell);
viewer.getControl().setMenu(menu);
viewer.doSetItemCount(1);
assertSame(menu, viewer.getItem(0).getMenu());
}
public void testDoSetItemCountDontDisposeMenu() throws Exception {
Menu menu = new Menu(shell);
BoxViewer viewer = new BoxViewer(shell);
viewer.getControl().setMenu(menu);
viewer.doSetItemCount(1);
viewer.doSetItemCount(0);
assertFalse(menu.isDisposed());
}
public void testDisposeControlDisposeMenu() throws Exception {
Menu menu = new Menu(shell);
BoxViewer viewer = new BoxViewer(shell);
viewer.getControl().setMenu(menu);
viewer.getControl().dispose();
assertTrue(menu.isDisposed());
}
}