/******************************************************************************* * 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.grid.command; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Properties; import org.eclipse.nebula.widgets.nattable.columnRename.RenameColumnHelper; import org.eclipse.nebula.widgets.nattable.grid.layer.ColumnHeaderLayer; import org.eclipse.nebula.widgets.nattable.test.fixture.layer.ColumnHeaderLayerFixture; import org.eclipse.nebula.widgets.nattable.test.integration.PersistenceIntegrationTest; import org.junit.Before; import org.junit.Test; public class RenameColumnHelperTest { private RenameColumnHelper helper; private Properties properties; private static String PREFIX = PersistenceIntegrationTest.TEST_PERSISTENCE_PREFIX; private static String KEY = RenameColumnHelper.PERSISTENCE_KEY_RENAMED_COLUMN_HEADERS; @Before public void setup() { ColumnHeaderLayer columnHeaderLayer = new ColumnHeaderLayerFixture(); this.properties = new Properties(); this.helper = new RenameColumnHelper(columnHeaderLayer); } @Test public void shouldRenameColumn() throws Exception { assertTrue(this.helper.renameColumnPosition(1, "one")); assertEquals("one", this.helper.getRenamedColumnLabel(1)); // Invalid position assertFalse(this.helper.renameColumnPosition(-1, "badone")); assertEquals("one", this.helper.getRenamedColumnLabel(1)); // new name is null assertTrue(this.helper.renameColumnPosition(1, null)); assertEquals(null, this.helper.getRenamedColumnLabel(1)); } @Test public void doNotSaveStateIfNoColumnAreRenamed() throws Exception { this.helper.saveState(PREFIX, this.properties); assertNull(this.properties.get(KEY)); } @Test public void saveRenamedColumnInProperties() throws Exception { this.helper.renameColumnPosition(2, "Renamed 2"); this.helper.saveState(PREFIX, this.properties); assertEquals("2:Renamed 2|", this.properties.get(PREFIX + KEY)); this.helper.renameColumnPosition(1, "Renamed 1"); this.helper.saveState(PREFIX, this.properties); assertEquals("1:Renamed 1|2:Renamed 2|", this.properties.get(PREFIX + KEY)); } @Test public void loadStateWhenNoPrepertiesArePersisted() throws Exception { this.helper.loadState(PREFIX, this.properties); assertFalse(this.helper.isAnyColumnRenamed()); } @Test public void loadStateFromProperties() throws Exception { this.properties.put(PREFIX + KEY, "2:Renamed 2|1:Renamed 1|"); this.helper.loadState(PREFIX, this.properties); assertTrue(this.helper.isAnyColumnRenamed()); assertEquals("Renamed 2", this.helper.getRenamedColumnLabel(2)); assertEquals("Renamed 1", this.helper.getRenamedColumnLabel(1)); } }