/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG 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:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.internal.navigation.ui.swt.handlers;
import org.easymock.EasyMock;
import org.eclipse.riena.core.test.RienaTestCase;
import org.eclipse.riena.core.test.collect.NonUITestCase;
import org.eclipse.riena.navigation.ISubApplicationNode;
/**
* Tests for the class {@link SwitchSubApplication}.
*/
@NonUITestCase
public class SwitchSubApplicationTest extends RienaTestCase {
private SwitchSubApplication handler;
private ISubApplicationNode nodeA;
private ISubApplicationNode nodeB;
private ISubApplicationNode nodeC;
@Override
protected void setUp() throws Exception {
super.setUp();
handler = new SwitchSubApplication();
nodeA = EasyMock.createMock(ISubApplicationNode.class);
nodeB = EasyMock.createMock(ISubApplicationNode.class);
nodeC = EasyMock.createMock(ISubApplicationNode.class);
}
// find next
public void testFindNextSubApplicationAtoB() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertSame(nodeB, handler.findNextNode(nodes));
}
public void testFindNextSubApplicationCtoA() {
EasyMock.expect(nodeA.isSelected()).andReturn(false).times(2);
EasyMock.replay(nodeA);
EasyMock.expect(nodeC.isSelected()).andReturn(true);
EasyMock.replay(nodeC);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertSame(nodeA, handler.findNextNode(nodes));
}
public void testFindNextSubApplicationEmpty() {
final ISubApplicationNode[] nodes = {};
assertNull(handler.findNextNode(nodes));
}
public void testFindNextSubApplicationAtoA() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
final ISubApplicationNode[] nodes = {};
assertNull(handler.findNextNode(nodes));
}
public void testFindNextSubApplicationNoneSelected() {
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertNull(handler.findNextNode(nodes));
}
public void testFindNextSubApplicationTwoSelected() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
EasyMock.expect(nodeB.isSelected()).andReturn(true);
EasyMock.replay(nodeB);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertNull(handler.findNextNode(nodes));
}
// find previous
public void testFindPrevSubApplicationCtoB() {
EasyMock.expect(nodeC.isSelected()).andReturn(true);
EasyMock.replay(nodeC);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertSame(nodeB, handler.findPreviousNode(nodes, true));
}
public void testFindPrevSubApplicationAtoC() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
EasyMock.expect(nodeC.isSelected()).andReturn(false).times(2);
EasyMock.replay(nodeC);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertSame(nodeC, handler.findPreviousNode(nodes, true));
}
public void testFindPrevSubApplicationEmpty() {
final ISubApplicationNode[] nodes = {};
assertNull(handler.findPreviousNode(nodes, true));
}
public void testFindPrevSubApplicationAtoA() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
final ISubApplicationNode[] nodes = {};
assertNull(handler.findPreviousNode(nodes, true));
}
public void testFindPrevSubApplicationNoneSelected() {
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertNull(handler.findPreviousNode(nodes, true));
}
public void testFindPrevSubApplicationTwoSelected() {
EasyMock.expect(nodeA.isSelected()).andReturn(true);
EasyMock.replay(nodeA);
EasyMock.expect(nodeB.isSelected()).andReturn(true);
EasyMock.replay(nodeB);
final ISubApplicationNode[] nodes = { nodeA, nodeB, nodeC };
assertNull(handler.findPreviousNode(nodes, true));
}
}