Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcdamus2013-03-20 21:22:07 +0000
committercdamus2013-03-20 21:22:07 +0000
commit2ebc249b7c897c2e1f7711349665ab84f2628aa4 (patch)
tree74a1bad22fc143ccab4d7a097f969dbccd928801
parent5c73979afe41598d395a419b2601fbd12c07ce3d (diff)
downloadorg.eclipse.papyrus-2ebc249b7c897c2e1f7711349665ab84f2628aa4.tar.gz
org.eclipse.papyrus-2ebc249b7c897c2e1f7711349665ab84f2628aa4.tar.xz
org.eclipse.papyrus-2ebc249b7c897c2e1f7711349665ab84f2628aa4.zip
Improving test coverage.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=290952
-rw-r--r--tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/tests/AbstractPapyrusCDOTest.java14
-rw-r--r--tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOFunctionsTest.java108
-rw-r--r--tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOPredicatesTest.java142
3 files changed, 264 insertions, 0 deletions
diff --git a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/tests/AbstractPapyrusCDOTest.java b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/tests/AbstractPapyrusCDOTest.java
index 9b40cc1ccf8..632c9bf226d 100644
--- a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/tests/AbstractPapyrusCDOTest.java
+++ b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/tests/AbstractPapyrusCDOTest.java
@@ -51,6 +51,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
/**
@@ -269,4 +270,17 @@ public abstract class AbstractPapyrusCDOTest {
}
};
}
+
+ public static <T> Matcher<Iterable<T>> hasSize(final int size) {
+ return new BaseMatcher<Iterable<T>>() {
+
+ public void describeTo(Description description) {
+ description.appendText("has size ").appendValue(size);
+ }
+
+ public boolean matches(Object item) {
+ return Iterables.size((Iterable<?>)item) == size;
+ }
+ };
+ }
}
diff --git a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOFunctionsTest.java b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOFunctionsTest.java
index f3eb184b565..ef3169b243d 100644
--- a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOFunctionsTest.java
+++ b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOFunctionsTest.java
@@ -11,18 +11,30 @@
*****************************************************************************/
package org.eclipse.papyrus.cdo.core.util.tests;
+import static org.hamcrest.CoreMatchers.both;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.hasItems;
import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.junit.Assert.assertThat;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
import org.eclipse.emf.cdo.eresource.CDOResourceNode;
+import org.eclipse.emf.cdo.eresource.CDOTextResource;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.papyrus.cdo.core.tests.AbstractPapyrusCDOTest;
import org.eclipse.papyrus.cdo.core.util.CDOFunctions;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLFactory;
import org.junit.Test;
import com.google.common.base.Function;
@@ -88,6 +100,102 @@ public class CDOFunctionsTest extends AbstractPapyrusCDOTest {
assertThat(func.toString(), containsString("adapt("));
}
+ @Test
+ public void testRootFunction() {
+ CDOTransaction transaction = createTransaction();
+
+ Resource res = transaction.createResource(getResourcePath("/folder1/foo.uml"));
+ Package package1 = UMLFactory.eINSTANCE.createPackage();
+ res.getContents().add(package1);
+ Model model1 = UMLFactory.eINSTANCE.createModel();
+ res.getContents().add(model1);
+
+ assertThat(CDOFunctions.getRoot(Model.class).apply(res), sameInstance(model1));
+ assertThat(CDOFunctions.getRoot(Interface.class).apply(res), nullValue());
+ }
+
+ @Test
+ public void testRootFunction_equals() {
+ Function<Resource, Model> func1 = CDOFunctions.getRoot(Model.class);
+ Function<Resource, Package> func2 = CDOFunctions.getRoot(Package.class);
+ Function<Resource, Package> func3 = CDOFunctions.getRoot(Package.class);
+
+ assertThat((Object)func1, not(equalTo((Object)func2)));
+ assertThat((Object)func2, not(equalTo((Object)func1)));
+ assertThat(func2 == func3, is(false));
+ assertThat(func2, equalTo(func3));
+ assertThat(func3, equalTo(func2));
+ }
+
+ @Test
+ public void testRootFunction_hashCode() {
+ Function<Resource, Model> func1 = CDOFunctions.getRoot(Model.class);
+ Function<Resource, Package> func2 = CDOFunctions.getRoot(Package.class);
+ Function<Resource, Package> func3 = CDOFunctions.getRoot(Package.class);
+
+ assertThat(func1.hashCode() == func2.hashCode(), is(Model.class.hashCode() == Package.class.hashCode()));
+ assertThat(func2.hashCode(), is(func3.hashCode()));
+ }
+
+ @Test
+ public void testRootFunction_toString() {
+ Function<Resource, Model> func = CDOFunctions.getRoot(Model.class);
+
+ assertThat(func.toString(), containsString("getRoot("));
+ }
+
+ @Test
+ public void testFolderContentsFunction_folder() {
+ CDOTransaction transaction = createTransaction();
+
+ CDOResourceFolder folder = transaction.createResourceFolder(getResourcePath("/folder1"));
+ CDOResourceNode text = transaction.createTextResource(getResourcePath("/folder1/foo.properties"));
+ CDOResource res = transaction.createResource(getResourcePath("/folder1/foo.uml"));
+
+ assertThat(CDOFunctions.getFolderContents().apply(folder), both(AbstractPapyrusCDOTest.<CDOResourceNode> hasSize(2)).and(hasItems(text, res)));
+ assertThat(CDOFunctions.getFolderContents(CDOResource.class).apply(folder), both(AbstractPapyrusCDOTest.<CDOResource> hasSize(1)).and(hasItem(res)));
+ }
+
+ @Test
+ public void testFolderContentsFunction_rootResource() {
+ CDOTransaction transaction = createTransaction();
+
+ CDOResourceFolder folder = transaction.createResourceFolder(getResourcePath("/folder1"));
+ CDOResourceNode root = transaction.getRootResource();
+
+ assertThat(CDOFunctions.getFolderContents(CDOResourceFolder.class).apply(root), both(AbstractPapyrusCDOTest.<CDOResourceFolder> hasSize(1)).and(hasItem(folder.getFolder().getFolder())));
+ }
+
+ @Test
+ public void testFolderContentsFunction_equals() {
+ Function<CDOResourceNode, Iterable<CDOResourceNode>> func1 = CDOFunctions.getFolderContents();
+ Function<CDOResourceNode, Iterable<CDOTextResource>> func2 = CDOFunctions.getFolderContents(CDOTextResource.class);
+ Function<CDOResourceNode, Iterable<CDOTextResource>> func3 = CDOFunctions.getFolderContents(CDOTextResource.class);
+
+ assertThat((Object)func1, not(equalTo((Object)func2)));
+ assertThat((Object)func2, not(equalTo((Object)func1)));
+ assertThat(func2 == func3, is(false));
+ assertThat(func2, equalTo(func3));
+ assertThat(func3, equalTo(func2));
+ }
+
+ @Test
+ public void testFolderContentsFunction_hashCode() {
+ Function<CDOResourceNode, Iterable<CDOResourceNode>> func1 = CDOFunctions.getFolderContents();
+ Function<CDOResourceNode, Iterable<CDOTextResource>> func2 = CDOFunctions.getFolderContents(CDOTextResource.class);
+ Function<CDOResourceNode, Iterable<CDOTextResource>> func3 = CDOFunctions.getFolderContents(CDOTextResource.class);
+
+ assertThat(func1.hashCode() == func2.hashCode(), is(CDOResourceNode.class.hashCode() == CDOTextResource.class.hashCode()));
+ assertThat(func2.hashCode(), is(func3.hashCode()));
+ }
+
+ @Test
+ public void testFolderContentsFunction_toString() {
+ Function<CDOResourceNode, Iterable<CDOResource>> func = CDOFunctions.getFolderContents(CDOResource.class);
+
+ assertThat(func.toString(), containsString("getFolderContents("));
+ }
+
//
// Test framework
//
diff --git a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOPredicatesTest.java b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOPredicatesTest.java
index 8415e78e093..23b38bc7b12 100644
--- a/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOPredicatesTest.java
+++ b/tests/cdo/org.eclipse.papyrus.cdo.core.tests/src/org/eclipse/papyrus/cdo/core/util/tests/CDOPredicatesTest.java
@@ -11,19 +11,29 @@
*****************************************************************************/
package org.eclipse.papyrus.cdo.core.util.tests;
+import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import java.util.List;
+import java.util.Set;
+
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
import org.eclipse.emf.cdo.eresource.CDOResourceNode;
+import org.eclipse.emf.cdo.eresource.CDOTextResource;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.papyrus.cdo.core.tests.AbstractPapyrusCDOTest;
import org.eclipse.papyrus.cdo.core.util.CDOPredicates;
import org.junit.Test;
+import com.google.common.base.Objects;
import com.google.common.base.Predicate;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
/**
@@ -59,6 +69,138 @@ public class CDOPredicatesTest extends AbstractPapyrusCDOTest {
assertThat(pred.apply(adapter), is(true));
}
+ @Test
+ public void testHasExtension() {
+ Predicate<CDOResourceNode> hasUML = CDOPredicates.hasExtension("uml");
+ Predicate<CDOResourceNode> hasNone = CDOPredicates.hasExtension(null);
+ CDOTransaction transaction = createTransaction();
+
+ CDOResource res1 = transaction.createResource(getResourcePath("/folder1/foo.uml"));
+ CDOResource res2 = transaction.createResource(getResourcePath("/folder1/foo.notation"));
+ assertThat(hasUML.apply(res1), is(true));
+ assertThat(hasNone.apply(res1), is(false));
+ assertThat(hasUML.apply(res2), is(false));
+ assertThat(hasNone.apply(res2), is(false));
+
+ CDOResourceFolder folder = res1.getFolder();
+ assertThat(hasUML.apply(folder), is(false));
+ assertThat(hasNone.apply(folder), is(true));
+ assertThat(hasUML.apply(transaction.getRootResource()), is(false));
+ assertThat(hasNone.apply(transaction.getRootResource()), is(true));
+ }
+
+ @Test
+ public void testHasExtension_equals() {
+ Set<Predicate<CDOResourceNode>> set1 = ImmutableSet.of( //
+ CDOPredicates.hasExtension("uml"), //
+ CDOPredicates.hasExtension("notation"), //
+ CDOPredicates.hasExtension(null));
+ Set<Predicate<CDOResourceNode>> set2 = ImmutableSet.of( //
+ CDOPredicates.hasExtension("uml"), //
+ CDOPredicates.hasExtension("notation"), //
+ CDOPredicates.hasExtension(null));
+
+ @SuppressWarnings("unchecked")
+ Set<List<Predicate<CDOResourceNode>>> product = Sets.cartesianProduct(set1, set2);
+
+ int equalPairs = 0;
+ for(List<Predicate<CDOResourceNode>> next : product) {
+ if(next.get(0).equals(next.get(1))) {
+ equalPairs++;
+ }
+ }
+
+ assertThat(equalPairs, is(3));
+ }
+
+ @Test
+ public void testHasExtension_hashCode() {
+ Set<String> set1 = ImmutableSet.of("uml", "notation", "");
+ Set<String> set2 = ImmutableSet.of("uml", "notation", "");
+
+ @SuppressWarnings("unchecked")
+ Set<List<String>> product = Sets.cartesianProduct(set1, set2);
+
+ for(List<String> next : product) {
+ String ext1 = Strings.emptyToNull(next.get(0));
+ String ext2 = Strings.emptyToNull(next.get(1));
+
+ assertThat(CDOPredicates.hasExtension(ext1).hashCode() == CDOPredicates.hasExtension(ext2).hashCode(), //
+ is(Objects.hashCode(ext1) == Objects.hashCode(ext2)));
+ }
+ }
+
+ @Test
+ public void testHasExtension_toString() {
+ assertThat(CDOPredicates.hasExtension("uml").toString(), containsString("hasExtension("));
+ assertThat(CDOPredicates.hasExtension(null).toString(), containsString("hasNoExtension("));
+ }
+
+ @Test
+ public void testHasURIPrefix() {
+ CDOTransaction transaction = createTransaction();
+ CDOResourceFolder folder = transaction.createResourceFolder(getResourcePath("/folder1"));
+ CDOResource res1 = transaction.createResource(getResourcePath("/folder1/foo.uml"));
+ CDOTextResource res2 = transaction.createTextResource(getResourcePath("/folder2/foo.properties"));
+
+ URI prefix = folder.getURI();
+ if(!prefix.hasTrailingPathSeparator()) {
+ prefix = prefix.appendSegment("");
+ }
+
+ Predicate<CDOResourceNode> pred = CDOPredicates.hasURIPrefix(prefix);
+
+ assertThat(pred.apply(folder), is(false));
+ assertThat(pred.apply(res1), is(true));
+ assertThat(pred.apply(res2), is(false));
+ }
+
+ @Test
+ public void testHasURIPrefix_equals() {
+ Set<Predicate<CDOResourceNode>> set1 = ImmutableSet.of( //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/folder1/")), //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/folder2/")), //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/")));
+ Set<Predicate<CDOResourceNode>> set2 = ImmutableSet.of( //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/folder1/")), //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/folder2/")), //
+ CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/")));
+
+ @SuppressWarnings("unchecked")
+ Set<List<Predicate<CDOResourceNode>>> product = Sets.cartesianProduct(set1, set2);
+
+ int equalPairs = 0;
+ for(List<Predicate<CDOResourceNode>> next : product) {
+ if(next.get(0).equals(next.get(1))) {
+ equalPairs++;
+ }
+ }
+
+ assertThat(equalPairs, is(3));
+ }
+
+ @Test
+ public void testHasURIPrefix_hashCode() {
+ Set<String> set1 = ImmutableSet.of("cdo://repo1/folder1/", "cdo://repo1/folder2/", "cdo://repo1/");
+ Set<String> set2 = ImmutableSet.of("cdo://repo1/folder1/", "cdo://repo1/folder2/", "cdo://repo1/");
+
+ @SuppressWarnings("unchecked")
+ Set<List<String>> product = Sets.cartesianProduct(set1, set2);
+
+ for(List<String> next : product) {
+ URI uri1 = URI.createURI(next.get(0));
+ URI uri2 = URI.createURI(next.get(1));
+
+ assertThat(CDOPredicates.hasURIPrefix(uri1).hashCode() == CDOPredicates.hasURIPrefix(uri2).hashCode(), //
+ is(Objects.hashCode(uri1) == Objects.hashCode(uri2)));
+ }
+ }
+
+ @Test
+ public void testHasURIPrefix_toString() {
+ assertThat(CDOPredicates.hasURIPrefix(URI.createURI("cdo://repo1/folder1/")).toString(), containsString("hasURIPrefix("));
+ }
+
//
// Test framework
//

Back to the top