blob: c37c09663d393f21af4aef483181834214a907f4 [file] [log] [blame]
/*******************************************************************************
* 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));
}
}