/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.core.workspace; import java.util.List; import junit.extensions.TestSetup; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; /** * TestModelWorkspaceSelections */ public class TestModelWorkspaceSelections extends TestCase { private static final String OBJECT_CONSIDERED_SELECTABLE_BY_FILTER1 = "This is some object1"; //$NON-NLS-1$ private static final String OBJECT_CONSIDERED_SELECTABLE_BY_FILTER2 = "This is some object2"; //$NON-NLS-1$ public static final ModelWorkspaceSelectionFilter TEST_FILTER1 = new ModelWorkspaceSelectionFilter() { @Override public boolean isSelectable( final Object element ) { return element == OBJECT_CONSIDERED_SELECTABLE_BY_FILTER1; } }; public static final ModelWorkspaceSelectionFilter TEST_FILTER2 = new ModelWorkspaceSelectionFilter() { @Override public boolean isSelectable( final Object element ) { return element == OBJECT_CONSIDERED_SELECTABLE_BY_FILTER2; } }; private ModelWorkspaceSelections selections; private IPath path1; private IPath path2; private IPath path3; private IPath path4; private IPath path5; /** * Constructor for TestModelWorkspaceSelections. * * @param name */ public TestModelWorkspaceSelections( String name ) { super(name); } /* * @see TestCase#setUp() */ @Override protected void setUp() throws Exception { super.setUp(); this.selections = new ModelWorkspaceSelections(); this.path1 = new Path("/a/b"); //$NON-NLS-1$ this.path2 = new Path("/a/b/c"); //$NON-NLS-1$ this.path3 = new Path("/a/b/c/d"); //$NON-NLS-1$ this.path4 = new Path("/a/b/c/e"); //$NON-NLS-1$ this.path5 = new Path("/a/b/x"); //$NON-NLS-1$ } /* * @see TestCase#tearDown() */ @Override protected void tearDown() throws Exception { super.tearDown(); this.selections = null; } /** * Test suite, with one-time setup. */ public static Test suite() { TestSuite suite = new TestSuite("TestModelWorkspaceSelections"); //$NON-NLS-1$ suite.addTestSuite(TestModelWorkspaceSelections.class); // One-time setup and teardown return new TestSetup(suite) { @Override public void setUp() { } @Override public void tearDown() { } }; } public void testModelWorkspaceSelections() { new ModelWorkspaceSelections(); } public void testGetModelWorkspaceSelectionFilters() { final List filters = this.selections.getModelWorkspaceSelectionFilters(); assertNotNull(filters); assertEquals(0, filters.size()); filters.add(TEST_FILTER1); filters.add(TEST_FILTER2); final List filters2 = this.selections.getModelWorkspaceSelectionFilters(); assertNotNull(filters2); assertEquals(2, filters2.size()); this.selections.getModelWorkspaceSelectionFilters().clear(); assertNotNull(filters); assertEquals(0, filters.size()); } public void testIsSelectable() { assertEquals(false, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER1)); assertEquals(false, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER2)); final List filters = this.selections.getModelWorkspaceSelectionFilters(); filters.add(TEST_FILTER1); assertEquals(true, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER1)); assertEquals(false, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER2)); filters.add(TEST_FILTER2); assertEquals(true, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER1)); assertEquals(true, this.selections.isSelectable(OBJECT_CONSIDERED_SELECTABLE_BY_FILTER2)); } public void testHasSelectionModes() { assertEquals(false, this.selections.hasSelectionModes()); // Mark one path as selectable ... this.selections.setSelected(this.path1, ModelWorkspaceSelections.SELECTED); assertEquals(true, this.selections.hasSelectionModes()); } public void testGetSelectionModeIPathWithNothingSelected() { // Nothing is selected! assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path1)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path2)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path3)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path4)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path5)); } public void testGetSelectionModeIPathAfterSelectingRootPath() { this.selections.setSelected(this.path1, ModelWorkspaceSelections.SELECTED); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path1)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path2)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path3)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path4)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path5)); } public void testGetSelectionModeIPathAfterSelectingNonRootPath() { this.selections.setSelected(this.path2, ModelWorkspaceSelections.SELECTED); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path2)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path3)); assertEquals(ModelWorkspaceSelections.SELECTED, this.selections.getSelectionMode(this.path4)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path5)); assertEquals(ModelWorkspaceSelections.UNSELECTED, this.selections.getSelectionMode(this.path1)); } public void testSetSelectedWithoutViewReference() throws Exception { this.selections.setSelected("Some object", 0); //$NON-NLS-1$ } public void testGetSelectionModeWithoutViewReference() { try { this.selections.getSelectionMode("Some object"); //$NON-NLS-1$ fail("Missed calling without view reference"); //$NON-NLS-1$ } catch (IllegalStateException e) { // expected } } public void testToString() { this.selections.setSelected(this.path2, ModelWorkspaceSelections.SELECTED); System.out.println(this.selections.toString()); } }