Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.reviews.connector.tests/src')
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfBasicConnectorTest.java117
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfTaskSchemaTest.java70
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/query/QueryOperationTest.java29
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/BasicTestTaskSchema.java29
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/EmfTestConnector.java84
-rw-r--r--org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/MappedTestTaskSchema.java31
6 files changed, 360 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfBasicConnectorTest.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfBasicConnectorTest.java
new file mode 100644
index 00000000..51f12abf
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfBasicConnectorTest.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector;
+
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+import static org.junit.Assert.assertThat;
+import junit.framework.TestCase;
+
+import org.eclipse.mylyn.reviews.connector.support.EmfTestConnector;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Excercises connector issues that don't require a client.
+ *
+ * @author milesparker
+ */
+@SuppressWarnings("nls")
+public class EmfBasicConnectorTest extends TestCase {
+
+ static AbstractEmfConnector connector;
+
+ @Override
+ @Before
+ public void setUp() {
+ connector = new EmfTestConnector();
+ }
+
+ @Test
+ public void testCanCreateNewTask() {
+ assertTrue(connector.canCreateNewTask(null));
+ }
+
+ @Test
+ public void testGetConnectorKind() {
+ assertEquals("emftasks", connector.getConnectorKind());
+ }
+
+ @Test
+ public void testGetRepositoryUrlFromTaskUrl() {
+ assertNull(connector.getRepositoryUrlFromTaskUrl(null));
+ assertNull(connector.getRepositoryUrlFromTaskUrl("")); //$NON-NLS-1$
+ assertNull(connector.getRepositoryUrlFromTaskUrl("invalid repository url")); //$NON-NLS-1$
+ assertNull(connector.getRepositoryUrlFromTaskUrl("http://invalid.repository.url")); //$NON-NLS-1$
+ assertNull(connector.getRepositoryUrlFromTaskUrl("file://invalid.repository.url")); //$NON-NLS-1$
+ assertNull(connector.getRepositoryUrlFromTaskUrl("platform:/resource/invalid.plugin/etc")); //$NON-NLS-1$
+ assertNull(connector.getRepositoryUrlFromTaskUrl("platform:/resource/invalid.plugin/etc")); //$NON-NLS-1$
+ assertEquals("file:///somewhere", connector.getRepositoryUrlFromTaskUrl("file:///somewhere#MyTest")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void testGetTaskIdFromTaskUrl() {
+ assertNull(connector.getTaskIdFromTaskUrl(null));
+ assertNull(connector.getTaskIdFromTaskUrl("")); //$NON-NLS-1$
+ assertNull(connector.getTaskIdFromTaskUrl("invalid repository url")); //$NON-NLS-1$
+ assertNull(connector.getTaskIdFromTaskUrl("http://invalid.repository.url")); //$NON-NLS-1$
+ assertEquals("MyTest", connector.getTaskIdFromTaskUrl("file:///somewhere" + "#MyTest")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void testGetTaskUrl() {
+ assertEquals("file:///somewhere" + "#MyTest", //$NON-NLS-1$
+ connector.getTaskUrl("file:///somewhere", "MyTest")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void testGetTasKeyFromTaskId() {
+ String enDashString = "This is a test \u2013 of hyphens.";
+ String hyphenString = "This is a test - of hyphens.";
+ assertThat(enDashString, is(not(hyphenString)));
+ assertThat(enDashString, is(connector.encodeTaskKey(hyphenString)));
+ }
+
+ @Test
+ /**
+ * Since emf ids can be arbitrary strings, we have to be careful to handle delimiters, spaces and other stray characters in the key itself
+ */
+ public void testGetRepositoryUrlFromTaskUrl_UrlEncode() {
+ assertEquals(
+ "file:///somewhere", connector.getRepositoryUrlFromTaskUrl("file:///somewhere#MyTest 3 @ http://something.com")); //$NON-NLS-1$
+ assertEquals(
+ "file:///somewhere", connector.getRepositoryUrlFromTaskUrl("file:///somewhere#MyTest <breakme>\"broken\"</breakme>")); //$NON-NLS-1$
+ assertEquals(
+ "file:///somewhere", connector.getRepositoryUrlFromTaskUrl("file:///somewhere#MyTest &lt;breakme/&gt;&quot;broken&quot;&lt;breakme/&gt;")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void testGetTaskIdFromTaskUrl_UrlEncode() {
+ assertEquals(
+ "MyTest 3 @ http://something.com", connector.getTaskIdFromTaskUrl("file:///somewhere#MyTest 3 @ http://something.com")); //$NON-NLS-1$
+ assertEquals(
+ "MyTest <breakme>\"broken\"</breakme>", connector.getTaskIdFromTaskUrl("file:///somewhere#MyTest%20<breakme>\"broken\"</breakme>")); //$NON-NLS-1$
+ assertEquals(
+ "MyTest &lt;breakme/&gt;&quot;broken&quot;&lt;breakme/&gt;", connector.getTaskIdFromTaskUrl("file:///somewhere#MyTest &lt;breakme/&gt;&quot;broken&quot;&lt;breakme/&gt;")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void testGetTaskUrl_UrlEncode() {
+ assertEquals("file:///somewhere#MyTest+3+%40+http%3A%2F%2Fsomething.com", //$NON-NLS-1$
+ connector.getTaskUrl("file:///somewhere", "MyTest 3 @ http://something.com")); //$NON-NLS-1$
+ assertEquals("file:///somewhere#MyTest+%3Cbreakme%3E%22broken%22%3C%2Fbreakme%3E", //$NON-NLS-1$
+ connector.getTaskUrl("file:///somewhere", "MyTest <breakme>\"broken\"</breakme>")); //$NON-NLS-1$
+ assertEquals(
+ "file:///somewhere#MyTest+%26lt%3Bbreakme%2F%26gt%3B%26quot%3Bbroken%26quot%3B%26lt%3Bbreakme%2F%26gt%3B", //$NON-NLS-1$
+ connector.getTaskUrl("file:///somewhere", "MyTest &lt;breakme/&gt;&quot;broken&quot;&lt;breakme/&gt;")); //$NON-NLS-1$
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfTaskSchemaTest.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfTaskSchemaTest.java
new file mode 100644
index 00000000..0ed18cda
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/EmfTaskSchemaTest.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.mylyn.tasks.core.data.AbstractTaskSchema.Field;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.reviews.connector.support.BasicTestTaskSchema;
+import org.eclipse.mylyn.reviews.connector.support.MappedTestTaskSchema;
+import org.junit.Before;
+import org.junit.Test;
+
+@SuppressWarnings("nls")
+public class EmfTaskSchemaTest extends TestCase {
+
+ @Override
+ @Before
+ protected void setUp() throws Exception {
+ // ignore
+ super.setUp();
+ }
+
+ @Test
+ public void testBasicSchema() {
+ BasicTestTaskSchema schema = new BasicTestTaskSchema();
+ schema.initialize();
+ Field field = schema.getFieldByFeature(EcorePackage.Literals.EANNOTATION__SOURCE);
+ assertNotNull(field);
+ assertEquals("emf.ecore.eannotation.source", field.getKey());
+ assertEquals(TaskAttribute.KIND_DEFAULT, field.getKind());
+ assertEquals("Source", field.getLabel());
+ assertEquals("emf.ecore.eannotation.source", field.getIndexKey());
+ }
+
+ @Test
+ public void testTypes() {
+ BasicTestTaskSchema schema = new BasicTestTaskSchema();
+ schema.initialize();
+ Field field = schema.getFieldByFeature(EcorePackage.Literals.EANNOTATION__SOURCE);
+ assertEquals(TaskAttribute.TYPE_LONG_RICH_TEXT, field.getType());
+// field = schema.getFieldByFeature(EcorePackage.Literals.EANNOTATION__CONTENTS);
+// assertEquals(EmfTaskSchema.TYPE_EMF_REFERENCE, field.getType());
+ field = schema.getFieldByFeature(EcorePackage.Literals.ETYPED_ELEMENT__LOWER_BOUND);
+ assertEquals(TaskAttribute.TYPE_INTEGER, field.getType());
+ field = schema.getFieldByFeature(EcorePackage.Literals.ETYPED_ELEMENT__REQUIRED);
+ assertEquals(TaskAttribute.TYPE_BOOLEAN, field.getType());
+ //TODO check more types
+ }
+
+ @Test
+ public void testMappedTaskData() {
+ MappedTestTaskSchema schema = new MappedTestTaskSchema();
+ schema.initialize();
+ String featureKey = schema.getKey(schema.getFeature(TaskAttribute.TASK_KEY));
+ assertEquals("emf.ecore.epackage.nsuri", featureKey);
+ featureKey = schema.getKey(schema.getFeature(TaskAttribute.SUMMARY));
+ assertEquals("emf.ecore.epackage.nsprefix", featureKey);
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/query/QueryOperationTest.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/query/QueryOperationTest.java
new file mode 100644
index 00000000..13c1deea
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/query/QueryOperationTest.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector.query;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+import junit.framework.TestCase;
+
+import org.eclipse.mylyn.reviews.connector.query.QueryOperation;
+import org.junit.Test;
+
+@SuppressWarnings("nls")
+public class QueryOperationTest extends TestCase {
+
+ @Test
+ public void testDescriptions() {
+ String[] description = QueryOperation.toDescription(QueryOperation.ALL_OPERATIONS);
+ assertThat(description[0], is("contains"));
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/BasicTestTaskSchema.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/BasicTestTaskSchema.java
new file mode 100644
index 00000000..dcd20e10
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/BasicTestTaskSchema.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector.support;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.mylyn.reviews.connector.EmfTaskSchema;
+
+public class BasicTestTaskSchema extends EmfTaskSchema {
+
+ @Override
+ protected EClass[] getSchemaEClasses() {
+ return new EClass[] { EcorePackage.Literals.EANNOTATION, EcorePackage.Literals.ETYPED_ELEMENT };
+ }
+
+ @Override
+ protected FieldFeature[] getSchemaPairs() {
+ return new FieldFeature[] {};
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/EmfTestConnector.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/EmfTestConnector.java
new file mode 100644
index 00000000..64c71fe8
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/EmfTestConnector.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector.support;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.mylyn.internal.reviews.connector.EmfCorePlugin;
+import org.eclipse.mylyn.tasks.core.data.DefaultTaskSchema;
+import org.eclipse.mylyn.reviews.connector.EmfTaskSchema.FieldFeature;
+import org.eclipse.mylyn.reviews.connector.GenericEmfConnector;
+import org.osgi.framework.Bundle;
+
+public class EmfTestConnector extends GenericEmfConnector {
+
+ public static final String CONNECTOR_KIND = "emftasks"; //$NON-NLS-1$
+
+ public class TestTaskSchema extends BasicTestTaskSchema {
+
+ }
+
+ BasicTestTaskSchema testSchema = new MappedTestTaskSchema();
+
+ public EmfTestConnector() {
+ }
+
+ @Override
+ public String getConnectorKind() {
+ return CONNECTOR_KIND;
+ }
+
+ @Override
+ public String getLabel() {
+ return "EMF Test"; //$NON-NLS-1$
+ }
+
+ @Override
+ public EReference getContainmentReference() {
+ return EcorePackage.Literals.EPACKAGE__ECLASSIFIERS;
+ }
+
+ @Override
+ public EClass[] getTaskClasses() {
+ return new EClass[] { EcorePackage.Literals.ECLASSIFIER };
+ }
+
+ @Override
+ public FieldFeature[] getTaskFeatures() {
+ DefaultTaskSchema parent = DefaultTaskSchema.getInstance();
+ return new FieldFeature[] { new FieldFeature(parent.TASK_KEY, EcorePackage.Literals.ENAMED_ELEMENT__NAME),
+ new FieldFeature(parent.SUMMARY, EcorePackage.Literals.ECLASSIFIER__INSTANCE_TYPE_NAME) };
+ }
+
+ @Override
+ public Bundle getConnectorBundle() {
+ return EmfCorePlugin.getDefault().getBundle();
+ }
+
+ @Override
+ public EAttribute getContentsNameAttribute() {
+ return null;
+ }
+
+ @Override
+ public EAttribute[] getSearchAttributes() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public EAttribute getTaskKeySequenceAttribute() {
+ return null;
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/MappedTestTaskSchema.java b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/MappedTestTaskSchema.java
new file mode 100644
index 00000000..9488c21f
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.connector.tests/src/org/eclipse/mylyn/reviews/connector/support/MappedTestTaskSchema.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Tasktop Technologies 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:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.connector.support;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.mylyn.tasks.core.data.DefaultTaskSchema;
+
+public class MappedTestTaskSchema extends BasicTestTaskSchema {
+
+ @Override
+ protected EClass[] getSchemaEClasses() {
+ return new EClass[] { EcorePackage.Literals.EPACKAGE };
+ }
+
+ @Override
+ protected FieldFeature[] getSchemaPairs() {
+ DefaultTaskSchema parent = DefaultTaskSchema.getInstance();
+ return new FieldFeature[] { new FieldFeature(parent.TASK_KEY, EcorePackage.Literals.EPACKAGE__NS_URI),
+ new FieldFeature(parent.SUMMARY, EcorePackage.Literals.EPACKAGE__NS_PREFIX) };
+ }
+} \ No newline at end of file

Back to the top