| /******************************************************************************* |
| * Copyright (c) 2012, 2020 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.layer.cell; |
| |
| import static org.eclipse.nebula.widgets.nattable.layer.cell.ColumnOverrideLabelAccumulator.PERSISTENCE_KEY; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| import java.util.Properties; |
| |
| import org.eclipse.nebula.widgets.nattable.layer.LabelStack; |
| import org.eclipse.nebula.widgets.nattable.test.fixture.layer.DataLayerFixture; |
| import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| public class ColumnOverrideLabelAccumulatorTest { |
| |
| private static final String TEST_PREFIX = "TestPrefix"; |
| private static final String TEST_LABEL1 = "TestLabel1"; |
| private static final String TEST_LABEL2 = "TestLabel2"; |
| private static final String TEST_LABEL3 = "TestLabel3"; |
| |
| private static final String TEST_MIX_KEY = "BASE"; |
| private static final String TEST_MIX_LABEL = "TestMixLabel"; |
| |
| private ColumnOverrideLabelAccumulator labelAccumulator; |
| private Properties testProperties; |
| |
| @Before |
| public void setUp() { |
| this.labelAccumulator = new ColumnOverrideLabelAccumulator( |
| new DataLayerFixture()); |
| this.testProperties = new Properties(); |
| } |
| |
| @Test |
| public void testRegisterOverrides() { |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL1); |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL2); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(2, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(1)); |
| } |
| |
| @Test |
| public void testRegisterOverridesEllipse() { |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL1); |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL2, TEST_LABEL3); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(3, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(1)); |
| Assert.assertEquals(TEST_LABEL3, configLabels.get(2)); |
| } |
| |
| @Test |
| public void testRegisterOverridesCollection() { |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL1); |
| List<String> labels = new ArrayList<String>(); |
| labels.add(TEST_LABEL2); |
| labels.add(TEST_LABEL3); |
| this.labelAccumulator.registerColumnOverrides(0, labels); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(3, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(1)); |
| Assert.assertEquals(TEST_LABEL3, configLabels.get(2)); |
| } |
| |
| @Test |
| public void testRegisterOverridesOnTop() { |
| this.labelAccumulator.registerColumnOverridesOnTop(0, TEST_LABEL1); |
| this.labelAccumulator.registerColumnOverridesOnTop(0, TEST_LABEL2); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(2, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(1)); |
| } |
| |
| @Test |
| public void testRegisterOverridesEllipseOnTop() { |
| this.labelAccumulator.registerColumnOverridesOnTop(0, TEST_LABEL1); |
| this.labelAccumulator.registerColumnOverridesOnTop(0, TEST_LABEL2, |
| TEST_LABEL3); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(3, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL3, configLabels.get(1)); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(2)); |
| } |
| |
| @Test |
| public void testRegisterOverridesCollectionOnTop() { |
| this.labelAccumulator.registerColumnOverridesOnTop(0, TEST_LABEL1); |
| List<String> labels = new ArrayList<String>(); |
| labels.add(TEST_LABEL2); |
| labels.add(TEST_LABEL3); |
| this.labelAccumulator.registerColumnOverridesOnTop(0, labels); |
| |
| LabelStack configLabels = new LabelStack(); |
| this.labelAccumulator.accumulateConfigLabels(configLabels, 0, 0); |
| |
| Assert.assertEquals(3, configLabels.size()); |
| Assert.assertEquals(TEST_LABEL2, configLabels.get(0)); |
| Assert.assertEquals(TEST_LABEL3, configLabels.get(1)); |
| Assert.assertEquals(TEST_LABEL1, configLabels.get(2)); |
| } |
| |
| @Test |
| public void testSaveStateToProperties() throws Exception { |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL1, TEST_LABEL2); |
| this.labelAccumulator.registerColumnOverrides(1, TEST_LABEL2); |
| |
| this.labelAccumulator.saveState(TEST_PREFIX, this.testProperties); |
| |
| String baseKey = TEST_PREFIX + PERSISTENCE_KEY; |
| |
| Assert.assertEquals(TEST_LABEL1 + "," + TEST_LABEL2, |
| this.testProperties.getProperty(baseKey + ".0")); |
| Assert.assertEquals(TEST_LABEL2, |
| this.testProperties.getProperty(baseKey + ".1")); |
| } |
| |
| @Test |
| public void testMixedSaveStateToProperties() throws Exception { |
| this.labelAccumulator.registerOverrides(TEST_MIX_KEY, TEST_MIX_LABEL); |
| |
| this.labelAccumulator.registerColumnOverrides(0, TEST_LABEL1, TEST_LABEL2); |
| this.labelAccumulator.registerColumnOverrides(1, TEST_LABEL2); |
| |
| this.labelAccumulator.registerOverrides(TEST_LABEL3); |
| |
| this.labelAccumulator.saveState(TEST_PREFIX, this.testProperties); |
| |
| String baseKey = TEST_PREFIX + PERSISTENCE_KEY; |
| |
| Assert.assertEquals(TEST_MIX_LABEL, |
| this.testProperties.getProperty(baseKey + "." + TEST_MIX_KEY)); |
| Assert.assertEquals(TEST_LABEL1 + "," + TEST_LABEL2, |
| this.testProperties.getProperty(baseKey + ".0")); |
| Assert.assertEquals(TEST_LABEL2, |
| this.testProperties.getProperty(baseKey + ".1")); |
| Assert.assertEquals( |
| TEST_LABEL3, |
| this.testProperties.getProperty(baseKey + "." |
| + ColumnOverrideLabelAccumulator.ALL_COLUMN_KEY)); |
| } |
| |
| @Test |
| public void testLoadLabelsFromProperties() throws Exception { |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + ".0", |
| TEST_LABEL1); |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + ".5", |
| TEST_LABEL1 + "," + TEST_LABEL2); |
| |
| this.labelAccumulator.loadState(TEST_PREFIX, this.testProperties); |
| |
| List<String> overrides = this.labelAccumulator.getOverrides(0); |
| Assert.assertEquals(1, overrides.size()); |
| Assert.assertEquals(TEST_LABEL1, overrides.get(0)); |
| |
| overrides = this.labelAccumulator.getOverrides(5); |
| Assert.assertEquals(2, overrides.size()); |
| Assert.assertEquals(TEST_LABEL1, overrides.get(0)); |
| Assert.assertEquals(TEST_LABEL2, overrides.get(1)); |
| } |
| |
| @Test |
| public void testLoadMixedLabelsFromProperties() throws Exception { |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + "." |
| + TEST_MIX_KEY, TEST_MIX_LABEL); |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + ".0", |
| TEST_LABEL1); |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + ".5", |
| TEST_LABEL1 + "," + TEST_LABEL2); |
| this.testProperties.setProperty(TEST_PREFIX + PERSISTENCE_KEY + "." |
| + ColumnOverrideLabelAccumulator.ALL_COLUMN_KEY, TEST_LABEL3); |
| |
| this.labelAccumulator.loadState(TEST_PREFIX, this.testProperties); |
| |
| List<String> overrides = this.labelAccumulator.getOverrides(0); |
| Assert.assertEquals(1, overrides.size()); |
| Assert.assertEquals(TEST_LABEL1, overrides.get(0)); |
| |
| overrides = this.labelAccumulator.getOverrides(5); |
| Assert.assertEquals(2, overrides.size()); |
| Assert.assertEquals(TEST_LABEL1, overrides.get(0)); |
| Assert.assertEquals(TEST_LABEL2, overrides.get(1)); |
| |
| overrides = this.labelAccumulator.getOverrides(TEST_MIX_KEY); |
| Assert.assertEquals(1, overrides.size()); |
| Assert.assertEquals(TEST_MIX_LABEL, overrides.get(0)); |
| |
| overrides = this.labelAccumulator |
| .getOverrides(ColumnOverrideLabelAccumulator.ALL_COLUMN_KEY); |
| Assert.assertEquals(1, overrides.size()); |
| Assert.assertEquals(TEST_LABEL3, overrides.get(0)); |
| } |
| } |