Skip to content

Content of file ColumnConfigurationBuilder_PTest.java

/*******************************************************************************
 * Copyright (c) 2019 Christian W. Damus and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 * Christian W. Damus - initial API and implementation
 ******************************************************************************/
package org.eclipse.emfforms.spi.swt.table;

import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;

import java.util.Set;

import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.emfforms.common.Feature;
import org.eclipse.swt.widgets.Composite;
import org.junit.Before;
import org.junit.Test;

/**
 * Unit tests for the {@link ColumnConfigurationBuilder} class.
 */
@SuppressWarnings("nls")
public class ColumnConfigurationBuilder_PTest {

	private ColumnConfigurationBuilder fixture;

	/**
	 * Initializes me.
	 */
	public ColumnConfigurationBuilder_PTest() {
		super();
	}

	@Test
	public void showHide() {
		fixture.showHide(true);
		assertThat("show/hide feature not enabled", enabledFeatures(),
			hasItem(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW));
		fixture.showHide(false);
		assertThat("show/hide feature still enabled", enabledFeatures(),
			not(hasItem(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW)));
	}

	@Test
	public void substringFilter() {
		fixture.substringFilter(true);
		assertThat("filter feature not enabled", enabledFeatures(), hasItem(TableConfiguration.FEATURE_COLUMN_FILTER));
		fixture.substringFilter(false);
		assertThat("filter feature still enabled", enabledFeatures(),
			not(hasItem(TableConfiguration.FEATURE_COLUMN_FILTER)));
	}

	@Test
	public void regexFilter() {
		fixture.regexFilter(true);
		assertThat("regex filter feature not enabled", enabledFeatures(),
			hasItem(TableConfiguration.FEATURE_COLUMN_REGEX_FILTER));
		fixture.regexFilter(false);
		assertThat("regex filter feature still enabled", enabledFeatures(),
			not(hasItem(TableConfiguration.FEATURE_COLUMN_REGEX_FILTER)));
	}

	@Test
	public void from_TableViewerSWTBuilder() {
		final Composite parent = mock(Composite.class);
		final IObservableList<?> input = mock(IObservableList.class);
		final TableViewerSWTBuilder viewerBuilder = TableViewerFactory.fillDefaults(parent, 0, input);

		viewerBuilder.showHideColumns(true);
		viewerBuilder.columnSubstringFilter(true);
		viewerBuilder.columnRegexFilter(true);

		fixture = ColumnConfigurationBuilder.from(viewerBuilder);

		assertThat("show/hide feature not enabled", enabledFeatures(),
			hasItem(TableConfiguration.FEATURE_COLUMN_HIDE_SHOW));
		assertThat("filter feature not enabled", enabledFeatures(), hasItem(TableConfiguration.FEATURE_COLUMN_FILTER));
assertThat("regex filter feature not enabled", enabledFeatures(), hasItem(TableConfiguration.FEATURE_COLUMN_REGEX_FILTER)); } // // Test framework // @Before public void createFixture() { fixture = ColumnConfigurationBuilder.usingDefaults(); } Set<Feature> enabledFeatures() { return fixture.build().getEnabledFeatures(); } }