| /******************************************************************************* |
| * Copyright (c) 2012 Original authors 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: |
| * Original authors and others - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.nebula.widgets.nattable.columnCategories; |
| |
| import static org.eclipse.nebula.widgets.nattable.util.ArrayUtil.asIntegerList; |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| import org.eclipse.nebula.widgets.nattable.reorder.command.ColumnReorderCommand; |
| import org.eclipse.nebula.widgets.nattable.reorder.command.MultiColumnReorderCommand; |
| import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum; |
| import org.eclipse.nebula.widgets.nattable.test.fixture.ColumnCategoriesModelFixture; |
| import org.eclipse.nebula.widgets.nattable.test.fixture.layer.ColumnHeaderLayerFixture; |
| import org.eclipse.nebula.widgets.nattable.test.fixture.layer.ColumnHideShowLayerFixture; |
| import org.eclipse.nebula.widgets.nattable.test.fixture.layer.DataLayerFixture; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| public class ChooseColumnsFromCategoriesCommandHandlerTest { |
| |
| private ChooseColumnsFromCategoriesCommandHandler commandHandler; |
| private ColumnHideShowLayerFixture hideShowLayerFixture; |
| |
| @Before |
| public void setup() { |
| this.hideShowLayerFixture = new ColumnHideShowLayerFixture(); |
| this.commandHandler = new ChooseColumnsFromCategoriesCommandHandler( |
| this.hideShowLayerFixture, new ColumnHeaderLayerFixture(), |
| new DataLayerFixture(), new ColumnCategoriesModelFixture()); |
| } |
| |
| @Test |
| public void shouldFireCorrectMoveCommandsOnTable() throws Exception { |
| this.commandHandler.itemsMoved(MoveDirectionEnum.DOWN, Arrays.asList(1)); |
| assertTrue(this.hideShowLayerFixture.getLastCommand() instanceof ColumnReorderCommand); |
| |
| this.commandHandler.itemsMoved(MoveDirectionEnum.DOWN, |
| Arrays.asList(1, 2, 3)); |
| assertTrue(this.hideShowLayerFixture.getLastCommand() instanceof MultiColumnReorderCommand); |
| } |
| |
| @Test |
| public void calculateDestinationPositionsForMovingUp() throws Exception { |
| List<Integer> destinationPositions = this.commandHandler |
| .getDestinationPositions(MoveDirectionEnum.UP, Arrays.asList( |
| asIntegerList(1, 2, 3), asIntegerList(7), |
| asIntegerList(12))); |
| |
| assertEquals(3, destinationPositions.size()); |
| assertEquals(0, destinationPositions.get(0).intValue()); |
| assertEquals(6, destinationPositions.get(1).intValue()); |
| assertEquals(11, destinationPositions.get(2).intValue()); |
| } |
| |
| @Test |
| public void calculateDestinationPositionsForMovingDown() throws Exception { |
| List<Integer> destinationPositions = this.commandHandler |
| .getDestinationPositions(MoveDirectionEnum.DOWN, Arrays.asList( |
| asIntegerList(1, 2, 3), asIntegerList(7), |
| asIntegerList(12))); |
| |
| assertEquals(3, destinationPositions.size()); |
| assertEquals(5, destinationPositions.get(0).intValue()); |
| assertEquals(9, destinationPositions.get(1).intValue()); |
| assertEquals(14, destinationPositions.get(2).intValue()); |
| } |
| |
| } |