Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.emf.test.ecore.xcore/src/org/eclipse/emf/test/ecore/xcore/legacy_xpect_runner/XpectString.java')
-rw-r--r--tests/org.eclipse.emf.test.ecore.xcore/src/org/eclipse/emf/test/ecore/xcore/legacy_xpect_runner/XpectString.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/org.eclipse.emf.test.ecore.xcore/src/org/eclipse/emf/test/ecore/xcore/legacy_xpect_runner/XpectString.java b/tests/org.eclipse.emf.test.ecore.xcore/src/org/eclipse/emf/test/ecore/xcore/legacy_xpect_runner/XpectString.java
new file mode 100644
index 000000000..c3350a74a
--- /dev/null
+++ b/tests/org.eclipse.emf.test.ecore.xcore/src/org/eclipse/emf/test/ecore/xcore/legacy_xpect_runner/XpectString.java
@@ -0,0 +1,73 @@
+package org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner.IParameterProvider.IExpectation;
+import org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner.TestExpectationValidator.ITestExpectationValidator;
+import org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner.TestExpectationValidator.TestResult;
+import org.eclipse.emf.test.ecore.xcore.legacy_xpect_runner.XpectString.StringResultValidator;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.util.internal.FormattingMigrator;
+import org.junit.Assert;
+import org.junit.ComparisonFailure;
+
+/**
+ * use org.xpect.runner.Xpect from www.xpect-tests.org instead. In Xpect, test
+ * methods don't have return values anymore. Instead, the test expectation is
+ * passed in as method parameter. To handle a method with a String expectation
+ * you can use a method declaration such as
+ *
+ * <code>@Xpect public void linkedName(@StringExpectation IStringExpectation expectation) { }</code>
+ *
+ * This class will be removed in the next release after 2.4.2
+ *
+ * @author Moritz Eysholdt - Initial contribution and API
+ */
+@Deprecated
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+@SuppressWarnings("restriction")
+@TestExpectationValidator(validator = StringResultValidator.class)
+public @interface XpectString {
+
+ public class StringResultValidator implements
+ ITestExpectationValidator<String> {
+
+ protected XpectString config;
+
+ public StringResultValidator(XpectString config) {
+ this.config = config;
+ }
+
+ public void validate(XtextResource resource, IExpectation expectation,
+ @TestResult String actual) {
+ Assert.assertNotNull(resource);
+ Assert.assertNotNull(expectation);
+ Assert.assertNotNull(expectation.getExpectation());
+ Assert.assertNotNull(actual);
+ String exp;
+ if (!config.whitespaceSensitive()) {
+ FormattingMigrator migrator = new FormattingMigrator();
+ exp = migrator.migrate(actual, expectation.getExpectation());
+ } else
+ exp = expectation.getExpectation();
+
+ if ((config.caseSensitive() && !exp.equals(actual))
+ || (!config.caseSensitive() && !exp
+ .equalsIgnoreCase(actual))) {
+ String expDoc = IExpectation.Util.replace(resource,
+ expectation, exp);
+ String actDoc = IExpectation.Util.replace(resource,
+ expectation, actual);
+ throw new ComparisonFailure("", expDoc, actDoc);
+ }
+ }
+ }
+
+ boolean caseSensitive() default true;
+
+ boolean whitespaceSensitive() default false;
+}

Back to the top