diff options
Diffstat (limited to 'cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/src/org/eclipse/papyrus/cdo/uml/search/ui/tests/SearchScopingTest.java')
-rwxr-xr-x | cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/src/org/eclipse/papyrus/cdo/uml/search/ui/tests/SearchScopingTest.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/src/org/eclipse/papyrus/cdo/uml/search/ui/tests/SearchScopingTest.java b/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/src/org/eclipse/papyrus/cdo/uml/search/ui/tests/SearchScopingTest.java new file mode 100755 index 00000000..2ac2005e --- /dev/null +++ b/cdo/tests/org.eclipse.papyrus.cdo.uml.search.ui.tests/src/org/eclipse/papyrus/cdo/uml/search/ui/tests/SearchScopingTest.java @@ -0,0 +1,93 @@ +/***************************************************************************** + * Copyright (c) 2013, 2017 CEA LIST 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: + * CEA LIST - Initial API and implementation + *****************************************************************************/ +package org.eclipse.papyrus.cdo.uml.search.ui.tests; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.util.Collections; + +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.papyrus.cdo.uml.search.internal.ui.query.CDOSearchQueryProvider; +import org.eclipse.papyrus.uml.search.ui.query.AbstractPapyrusQuery; +import org.eclipse.papyrus.uml.search.ui.query.QueryInfo; +import org.junit.Test; + +import com.google.common.base.Objects; +import com.google.common.base.Predicate; + + +/** + * This is the BasicTextSearchTest.java type. Enjoy. + */ +public class SearchScopingTest extends AbstractPapyrusCDOSearchTest { + + public SearchScopingTest() { + super(); + } + + @Test + public void testCanProvideFor() { + CDOSearchQueryProvider provider = new CDOSearchQueryProvider(); + assertThat(provider.canProvideFor(getRepositoryURI()), is(true)); + assertThat(provider.canProvideFor(getTestFolderURI()), is(true)); + assertThat(provider.canProvideFor(URI.createPlatformResourceURI("/GarageModel/garage.uml", true)), is(false)); + } + + @Test + public void testSearchWholeFolder() { + CDOSearchQueryProvider provider = new CDOSearchQueryProvider(); + QueryInfo info = new QueryInfo("close", false, false, false, Collections.singleton(getTestFolderURI())); + + AbstractPapyrusQuery query = provider.createSimpleSearchQuery(info); + query.run(new NullProgressMonitor()); + + assertMatchedAny(query.getSearchResult(), resourceName("garage")); + assertMatchedAny(query.getSearchResult(), resourceName("tracker")); + } + + @Test + public void testSearchModel() { + CDOSearchQueryProvider provider = new CDOSearchQueryProvider(); + + QueryInfo info = new QueryInfo("close", false, false, false, // + // trim the trailing empty segment of the folder URI to avoid getting a double separator ("//") + Collections.singleton(getTestFolderURI().trimSegments(1).appendSegment("GarageModel").appendSegment("garage.uml"))); + + AbstractPapyrusQuery query = provider.createSimpleSearchQuery(info); + query.run(new NullProgressMonitor()); + + assertMatched(query.getSearchResult(), resourceName("garage")); + assertNotMatched(query.getSearchResult(), resourceName("tracker")); + } + + // + // Test framework + // + + protected Predicate<EObject> resourceName(final String name) { + return new Predicate<EObject>() { + + @Override + public boolean apply(EObject input) { + Resource resource = input.eResource(); + return Objects.equal(resource.getURI().trimFileExtension().lastSegment(), name); + } + }; + } + +} |