diff options
author | Ed Willink | 2016-12-14 12:46:23 +0000 |
---|---|---|
committer | Ed Willink | 2016-12-14 17:18:27 +0000 |
commit | 0733d92f89163d75524eeec9d1678bb0ce149b30 (patch) | |
tree | 3c07b28e3f352a4cfb7cba169e3e1ce8efaf761f | |
parent | 7f421019c29b38f2207fb7b10bbbc703056e8df9 (diff) | |
download | org.eclipse.qvtd-0733d92f89163d75524eeec9d1678bb0ce149b30.tar.gz org.eclipse.qvtd-0733d92f89163d75524eeec9d1678bb0ce149b30.tar.xz org.eclipse.qvtd-0733d92f89163d75524eeec9d1678bb0ce149b30.zip |
[412341] Accommodate WFR load errors
7 files changed, 158 insertions, 81 deletions
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java index 099ec0cc3..57f875579 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java +++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java @@ -19,6 +19,7 @@ import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.internal.StandardLibraryImpl; import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution; import org.eclipse.ocl.pivot.utilities.OCL; @@ -30,35 +31,36 @@ import org.eclipse.qvtd.xtext.qvtbase.tests.utilities.TestsXMLUtil; * Tests that load a model and verify that there are no unresolved proxies as a result. */ public class LoadTestCase extends XtextTestCase -{ - public void doLoad_Concrete(@NonNull String inputName) throws IOException { +{ + public void doLoad_Concrete(@NonNull String inputName, @NonNull String @Nullable [] messages) throws IOException { OCL ocl = QVTbase.newInstance(getProjectMap(), null); -// OCL ocl = OCL.newInstance(getProjectMap()); + // OCL ocl = OCL.newInstance(getProjectMap()); URI inputURI = getProjectFileURI(inputName); URI pivotURI = inputURI.trimFileExtension().appendFileExtension("qvtias"); - doLoad_Concrete(ocl, inputURI, pivotURI); + doLoad_Concrete(ocl, inputURI, pivotURI, messages); ocl.dispose(); } - public Resource doLoad_Concrete(@NonNull OCL ocl, @NonNull String inputName, @NonNull String outputName) throws IOException { + public Resource doLoad_Concrete(@NonNull OCL ocl, @NonNull String inputName, @NonNull String outputName, @NonNull String @Nullable [] messages) throws IOException { URI inputURI = getProjectFileURI(inputName); URI pivotURI = getProjectFileURI(outputName); - return doLoad_Concrete(ocl, inputURI, pivotURI); + return doLoad_Concrete(ocl, inputURI, pivotURI, messages); } - protected Resource doLoad_Concrete(@NonNull OCL ocl, @NonNull URI inputURI, @NonNull URI pivotURI) throws IOException { + protected Resource doLoad_Concrete(@NonNull OCL ocl, @NonNull URI inputURI, @NonNull URI pivotURI, @NonNull String @Nullable [] messages) throws IOException { URI cstURI = pivotURI.trimFileExtension().appendFileExtension("xmi"); BaseCSResource xtextResource = (BaseCSResource) ocl.getResourceSet().getResource(inputURI, true); + assert xtextResource != null; assertNoResourceErrors("Load failed", xtextResource); Resource pivotResource = xtextResource.getASResource(); assertNoUnresolvedProxies("Unresolved proxies", xtextResource); -// System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " validate()"); + // System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " validate()"); assertNoValidationErrors("Validation errors", xtextResource.getContents().get(0)); -// System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " validated()"); + // System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " validated()"); saveAsXMI(xtextResource, cstURI); pivotResource.setURI(pivotURI); - assertNoValidationErrors("Pivot validation errors", pivotResource.getContents().get(0)); - pivotResource.save(TestsXMLUtil.defaultSavingOptions); + assertValidationDiagnostics("Pivot validation errors", pivotResource, messages); + pivotResource.save(TestsXMLUtil.defaultSavingOptions); return pivotResource; } @@ -71,15 +73,15 @@ public class LoadTestCase extends XtextTestCase assertNoResourceErrors("Save failed", xmiResource); resource.getContents().addAll(xmiResource.getContents()); } - + @Override protected void setUp() throws Exception { -// PivotTestCase.TEST_START.setState(true); + // PivotTestCase.TEST_START.setState(true); super.setUp(); configurePlatformResources(); EcorePackage.eINSTANCE.getClass(); // Workaround Bug 425841 -// resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("emof", new EMOFResourceFactoryImpl()); //$NON-NLS-1$ -// resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("pivot", new XMIResourceFactoryImpl()); //$NON-NLS-1$ + // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("emof", new EMOFResourceFactoryImpl()); //$NON-NLS-1$ + // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("pivot", new XMIResourceFactoryImpl()); //$NON-NLS-1$ } @Override diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java index 498e82491..bcb048007 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java +++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java @@ -14,7 +14,9 @@ package org.eclipse.qvtd.xtext.qvtbase.tests; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -64,6 +66,58 @@ public class PivotTestCase extends TestCase public static final @NonNull TracingOption TEST_START = new TracingOption(PLUGIN_ID, "test/start"); private static StandaloneProjectMap projectMap = null; + public static @NonNull List<Diagnostic> assertDiagnostics(@NonNull String prefix, @NonNull List<Diagnostic> diagnostics, String... messages) { + Map<String, Integer> expected = new HashMap<String, Integer>(); + for (String message : messages) { + Integer count = expected.get(message); + count = count == null ? 1 : count + 1; + expected.put(message, count); + } + StringBuilder s1 = null; + for (Diagnostic diagnostic : diagnostics) { + String actual = diagnostic.getMessage(); + Integer expectedCount = expected.get(actual); + if ((expectedCount == null) || (expectedCount <= 0)) { + if (s1 == null) { + s1 = new StringBuilder(); + s1.append("\nUnexpected errors"); + } + s1.append("\n"); + s1.append(actual); + } + else { + expected.put(actual, expectedCount-1); + } + } + StringBuilder s2 = null; + for (String key : expected.keySet()) { + Integer count = expected.get(key); + assert count != null; + while (count-- > 0) { + if (s2 == null) { + s2 = new StringBuilder(); + s2.append("\nMissing errors"); + } + s2.append("\n"); + s2.append(key); + } + } + if (s1 == null) { + if (s2 != null) { + fail(s2.toString()); + } + } + else { + if (s2 == null) { + fail(s1.toString()); + } + else { + fail(s1.toString() + s2.toString()); + } + } + return diagnostics; + } + public static void assertNoDiagnosticErrors(String message, XtextResource xtextResource) { List<Diagnostic> diagnostics = xtextResource.validateConcreteSyntax(); if (diagnostics.size() > 0) { @@ -77,7 +131,7 @@ public class PivotTestCase extends TestCase } } - public static void assertNoResourceErrors(String prefix, Resource resource) { + public static void assertNoResourceErrors(@NonNull String prefix, @NonNull Resource resource) { String message = PivotUtil.formatResourceDiagnostics(resource.getErrors(), prefix, "\n\t"); if (message != null) fail(message); @@ -200,6 +254,20 @@ public class PivotTestCase extends TestCase } } + public static @NonNull List<Diagnostic> assertValidationDiagnostics(@NonNull String prefix, @NonNull Resource resource, String... messages) { + Map<Object, Object> validationContext = LabelUtil.createDefaultContext(Diagnostician.INSTANCE); + return assertValidationDiagnostics(prefix, resource, validationContext, messages); + } + + public static @NonNull List<Diagnostic> assertValidationDiagnostics(@NonNull String prefix, @NonNull Resource resource, Map<Object, Object> validationContext, String... messages) { + List<Diagnostic> diagnostics = new ArrayList<Diagnostic>(); + for (EObject eObject : resource.getContents()) { + Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject, validationContext); + diagnostics.addAll(diagnostic.getChildren()); + } + return messages != null ? assertDiagnostics(prefix, diagnostics, messages) : Collections.emptyList(); + } + protected static Value failOn(String expression, Throwable e) { if (e instanceof EvaluationException) { Throwable eCause = e.getCause(); @@ -221,6 +289,7 @@ public class PivotTestCase extends TestCase URI xtextURI = URI.createURI("test.oclinecore"); ResourceSet resourceSet = new ResourceSetImpl(); EssentialOCLCSResource xtextResource = (EssentialOCLCSResource) resourceSet.createResource(xtextURI, null); + assert xtextResource != null; ocl.getEnvironmentFactory().adapt(xtextResource); xtextResource.load(inputStream, null); assertNoResourceErrors("Loading Xtext", xtextResource); @@ -247,10 +316,10 @@ public class PivotTestCase extends TestCase // projectMap = null; // } - public static Resource savePivotAsEcore(@NonNull OCL ocl, Resource pivotResource, URI ecoreURI, boolean validateSaved) throws IOException { + public static Resource savePivotAsEcore(@NonNull OCL ocl, @NonNull Resource pivotResource, URI ecoreURI, boolean validateSaved) throws IOException { return savePivotAsEcore(ocl, pivotResource, ecoreURI, null, validateSaved); } - public static Resource savePivotAsEcore(@NonNull OCL ocl, Resource pivotResource, URI ecoreURI, Map<String,Object> options, boolean validateSaved) throws IOException { + public static Resource savePivotAsEcore(@NonNull OCL ocl, @NonNull Resource pivotResource, URI ecoreURI, Map<String,Object> options, boolean validateSaved) throws IOException { URI uri = ecoreURI != null ? ecoreURI : URI.createURI("test.ecore"); Resource ecoreResource = AS2Ecore.createResource((EnvironmentFactoryInternal) ocl.getEnvironmentFactory(), pivotResource, uri, null); assertNoResourceErrors("Ecore2Pivot failed", ecoreResource); @@ -263,7 +332,7 @@ public class PivotTestCase extends TestCase return ecoreResource; } - public static Resource savePivotFromCS(@NonNull OCL ocl, BaseCSResource xtextResource, URI pivotURI) throws IOException { + public static @NonNull Resource savePivotFromCS(@NonNull OCL ocl, @NonNull BaseCSResource xtextResource, URI pivotURI) throws IOException { Resource pivotResource = xtextResource.getASResource(); assertNoUnresolvedProxies("Unresolved proxies", pivotResource); if (pivotURI != null) { diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/LoadTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/LoadTests.java index 8c4fe1142..9a4e1671f 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/LoadTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/LoadTests.java @@ -19,7 +19,7 @@ import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase; * Tests that load a model and verify that there are no unresolved proxies as a result. */ public class LoadTests extends LoadTestCase -{ +{ @Override protected void setUp() throws Exception { BaseLinkingService.DEBUG_RETRY.setState(true); @@ -28,30 +28,30 @@ public class LoadTests extends LoadTestCase } public void testLoad_expressions_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/expressions.qvtc"); - } + doLoad_Concrete("models/expressions.qvtc", null); + } public void testLoad_mini_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/mini.qvtc"); - } + doLoad_Concrete("models/mini.qvtc", null); + } public void testLoad_uml2rdbms_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/uml2rdbms.qvtc"); - } + doLoad_Concrete("models/uml2rdbms.qvtc", null); + } public void testLoad_uml2rdbms_qvti_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/uml2rdbms.qvti.qvtc"); - } + doLoad_Concrete("models/uml2rdbms.qvti.qvtc", null); + } public void testLoad_uml2rdbms_qvtu_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/uml2rdbms.qvtu.qvtc"); - } + doLoad_Concrete("models/uml2rdbms.qvtu.qvtc", null); + } public void testLoad_HSV2HLS_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("models/HSV2HLS.qvtc"); - } + doLoad_Concrete("models/HSV2HLS.qvtc", null); + } public void testLoad_Class2RDBMS_qvtc() throws IOException, InterruptedException { - doLoad_Concrete("Class2RDBMS/Class2RDBMS.qvtc"); - } + doLoad_Concrete("Class2RDBMS/Class2RDBMS.qvtc", null); + } } diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java index 30843c8c3..30edb54d4 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java @@ -44,7 +44,7 @@ public class QVTcSerializeTests extends LoadTestCase Resource asResource1 = ocl1.getMetamodelManager().getASResourceSet().getResource(inputURI, true); URI referenceURI = getProjectFileURI(stem + "ref.qvtcas"); doSerialize(inputURI, stem, referenceURI, null, true, true); - Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvtc", stem + ".serialized.qvtcas"); + Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvtc", stem + ".serialized.qvtcas", null); ((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI()); assertSameModel(asResource1, asResource3); ocl1.dispose(); @@ -54,11 +54,11 @@ public class QVTcSerializeTests extends LoadTestCase protected void doSerializeRoundTripFromCS(@NonNull String stem) throws Exception { QVTcore ocl1 = QVTcore.newInstance(QVTcore.NO_PROJECTS); QVTcore ocl2 = QVTcore.newInstance(QVTcore.NO_PROJECTS); - Resource asResource1 = doLoad_Concrete(ocl1, stem + ".qvtc", stem + ".qvtcas"); + Resource asResource1 = doLoad_Concrete(ocl1, stem + ".qvtc", stem + ".qvtcas", null); URI inputURI = getProjectFileURI(stem + ".qvtcas"); URI referenceURI = getProjectFileURI(stem + "ref.qvtcas"); doSerialize(inputURI, stem, referenceURI, null, true, true); - Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvtc", stem + ".serialized.qvtcas"); + Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvtc", stem + ".serialized.qvtcas", null); ((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI()); TestsXMLUtil.resetTransients(asResource1); TestsXMLUtil.resetTransients(asResource3); @@ -67,8 +67,9 @@ public class QVTcSerializeTests extends LoadTestCase ocl2.dispose(); } - protected ASResource loadQVTiAS(@NonNull OCL ocl, @NonNull URI inputURI) { + protected @NonNull ASResource loadQVTiAS(@NonNull OCL ocl, @NonNull URI inputURI) { Resource asResource = ocl.getMetamodelManager().getASResourceSet().getResource(inputURI, true); + assert asResource != null; // List<String> conversionErrors = new ArrayList<String>(); // RootPackageCS documentCS = Ecore2OCLinEcore.importFromEcore(resourceSet, null, ecoreResource); // Resource eResource = documentCS.eResource(); diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiEditorTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiEditorTests.java index 152d05647..d43692cd6 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiEditorTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiEditorTests.java @@ -14,6 +14,7 @@ import java.io.IOException; import org.eclipse.emf.common.util.URI; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.utilities.OCL; import org.eclipse.ocl.xtext.base.services.BaseLinkingService; import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperative; @@ -23,14 +24,14 @@ import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase; * Tests that load a model and verify that there are no unresolved proxies as a result. */ public class QVTiEditorTests extends LoadTestCase -{ +{ @Override - public void doLoad_Concrete(@NonNull String inputName) throws IOException { + public void doLoad_Concrete(@NonNull String inputName, @NonNull String @Nullable [] messages) throws IOException { OCL ocl = QVTimperative.newInstance(getProjectMap(), null); -// OCL ocl = OCL.newInstance(getProjectMap()); + // OCL ocl = OCL.newInstance(getProjectMap()); URI inputURI = getProjectFileURI(inputName); @NonNull URI pivotURI = inputURI.trimFileExtension().appendFileExtension("qvtias"); - doLoad_Concrete(ocl, inputURI, pivotURI); + doLoad_Concrete(ocl, inputURI, pivotURI, messages); ocl.dispose(); } @@ -41,15 +42,15 @@ public class QVTiEditorTests extends LoadTestCase super.setUp(); } public void testLoad_HSV2HLS_qvti() throws IOException, InterruptedException { - doLoad_Concrete("HSV2HLS/HSV2HLS.qvti"); - } - - + doLoad_Concrete("HSV2HLS/HSV2HLS.qvti", null); + } + + public void testLoad_Classescs2Classes_qvti() throws IOException, InterruptedException { - doLoad_Concrete("ClassesCS2AS/ClassesCS2AS.qvti"); + doLoad_Concrete("ClassesCS2AS/ClassesCS2AS.qvti", null); } -// public void testLoad_ClassToRDBMSSchedule_qvti() throws IOException, InterruptedException { -// doLoad_Concrete("ClassToRDBMSSchedule.qvti"); -// } + // public void testLoad_ClassToRDBMSSchedule_qvti() throws IOException, InterruptedException { + // doLoad_Concrete("ClassToRDBMSSchedule.qvti"); + // } } diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java index 695b29a12..bcfc44723 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java @@ -44,11 +44,11 @@ public class QVTiSerializeTests extends LoadTestCase protected void doSerializeRoundTrip(@NonNull String stem) throws Exception { OCL ocl1 = QVTimperative.newInstance(OCL.CLASS_PATH, null); OCL ocl2 = QVTimperative.newInstance(OCL.CLASS_PATH, null); - Resource asResource1 = doLoad_Concrete(ocl1, stem + ".qvti", stem + ".qvtias"); + Resource asResource1 = doLoad_Concrete(ocl1, stem + ".qvti", stem + ".qvtias", null); URI inputURI = getProjectFileURI(stem + ".qvtias"); URI referenceURI = getProjectFileURI(stem + "ref.qvtias"); doSerialize(inputURI, stem, referenceURI, null, true, true); - Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvti", stem + ".serialized.qvtias"); + Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvti", stem + ".serialized.qvtias", null); ((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI()); TestsXMLUtil.resetTransients(asResource1); TestsXMLUtil.resetTransients(asResource3); @@ -63,7 +63,7 @@ public class QVTiSerializeTests extends LoadTestCase Resource asResource1 = ocl1.getMetamodelManager().getASResourceSet().getResource(inputURI, true); URI referenceURI = getProjectFileURI(stem + "ref.qvtcas"); doSerialize(inputURI, stem, referenceURI, null, true, true); - Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvti", stem + ".serialized.qvtias"); + Resource asResource3 = doLoad_Concrete(ocl2, stem + ".serialized.qvti", stem + ".serialized.qvtias", null); ((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI()); assertSameModel(asResource1, asResource3); ocl1.dispose(); @@ -72,6 +72,7 @@ public class QVTiSerializeTests extends LoadTestCase protected ASResource loadQVTiAS(@NonNull OCL ocl, @NonNull URI inputURI) { Resource asResource = ocl.getMetamodelManager().getASResourceSet().getResource(inputURI, true); + assert asResource != null; // List<String> conversionErrors = new ArrayList<String>(); // RootPackageCS documentCS = Ecore2OCLinEcore.importFromEcore(resourceSet, null, ecoreResource); // Resource eResource = documentCS.eResource(); diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/LoadTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/LoadTests.java index 92618b1be..3ee486ad1 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/LoadTests.java +++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/LoadTests.java @@ -14,6 +14,7 @@ import java.io.IOException; import org.eclipse.emf.common.util.URI; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.utilities.OCL; import org.eclipse.ocl.xtext.base.services.BaseLinkingService; import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbase; @@ -23,26 +24,26 @@ import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase; * Tests that load a model and verify that there are no unresolved proxies as a result. */ public class LoadTests extends LoadTestCase -{ +{ public void doLoad_ModelMorf(@NonNull String stem) throws IOException { URI inputURI = URI.createPlatformResourceURI("/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/" + stem + ".qvtr", true); URI pivotURI = getProjectFileURI(stem + ".qvtras"); doLoad_Concrete(inputURI, pivotURI); } - protected void doLoad_Concrete(URI inputURI, URI pivotURI) throws IOException { + protected void doLoad_Concrete(@NonNull URI inputURI, @NonNull URI pivotURI) throws IOException { OCL ocl = OCL.newInstance(getProjectMap()); - doLoad_Concrete(ocl, inputURI, pivotURI); + doLoad_Concrete(ocl, inputURI, pivotURI, null); ocl.dispose(); } - + @Override - public void doLoad_Concrete(@NonNull String inputName) throws IOException { + public void doLoad_Concrete(@NonNull String inputName, @NonNull String @Nullable [] messages) throws IOException { OCL ocl = QVTbase.newInstance(getProjectMap(), null); -// OCL ocl = OCL.newInstance(getProjectMap()); + // OCL ocl = OCL.newInstance(getProjectMap()); URI inputURI = getProjectFileURI(inputName); URI pivotURI = inputURI.trimFileExtension().appendFileExtension("qvtras"); - doLoad_Concrete(ocl, inputURI, pivotURI); + doLoad_Concrete(ocl, inputURI, pivotURI, messages); ocl.dispose(); } @@ -52,74 +53,76 @@ public class LoadTests extends LoadTestCase BaseLinkingService.DEBUG_RETRY.setState(true); QVTrTestUtil.doQVTrelationSetup(); super.setUp(); -// getProjectMap(). -// ProjectMap.getAdapter(resourceSet); + // getProjectMap(). + // ProjectMap.getAdapter(resourceSet); } public void testLoad_AbstractToConcrete_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("AbstractToConcrete/AbstractToConcrete"); - } + } // FIXME public void zztestLoad_ClassModelToClassModel_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("ClassModelToClassModel/ClassModelToClassModel"); - } + } public void testLoad_DNF_bbox_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("DNF_bbox/DNF_bbox"); - } + } public void testLoad_DNF_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("DNF/DNF"); - } + } public void testLoad_HstmToStm_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("HstmToStm/hstmtostm"); - } + } public void testLoad_Import_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("Import/UmlToRdbms_1"); - } + } public void testLoad_Keys_qvtr() throws IOException, InterruptedException { - doLoad_Concrete("models/Keys.qvtr"); - } + doLoad_Concrete("models/Keys.qvtr", new @NonNull String[] { + "The 'RelationalTransformation::KeysAreUnique' constraint is violated for 'transformation Keys(mm)'" + }); + } public void testLoad_Packages_qvtr() throws IOException, InterruptedException { - doLoad_Concrete("models/Packages.qvtr"); - } + doLoad_Concrete("models/Packages.qvtr", null); + } public void testLoad_MiToSi_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("MiToSi/mitosi"); - } + } public void testLoad_RelToCore_qvtr() throws IOException, InterruptedException { -// ProjectMap.getAdapter(resourceSet); + // ProjectMap.getAdapter(resourceSet); URI inputURI = URI.createPlatformResourceURI("/org.eclipse.qvtd.examples.qvtrelation.reltocore/qvtrsrc/RelToCore.qvtr", true); URI pivotURI = getProjectFileURI("RelToCore.qvtras"); doLoad_Concrete(inputURI, pivotURI); - } + } public void testLoad_SimplerRelToCore_qvtr() throws IOException, InterruptedException { -// ProjectMap.getAdapter(resourceSet); + // ProjectMap.getAdapter(resourceSet); URI inputURI = URI.createPlatformResourceURI("/org.eclipse.qvtd.examples.qvtrelation.reltocore/qvtrsrc/SimplerRelToCore.qvtr", true); URI pivotURI = getProjectFileURI("SimplerRelToCore.qvtras"); doLoad_Concrete(inputURI, pivotURI); - } + } public void testLoad_SeqToStm_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("SeqToStm/SeqToStm"); - } + } public void testLoad_SeqToStmc_CT_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("SeqToStmc_CT/SeqToStmc"); - } + } public void testLoad_UmlToRdbms_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("UmlToRdbms/UmlToRdbms"); - } + } public void testLoad_UmlToRel_qvtr() throws IOException, InterruptedException { doLoad_ModelMorf("UmlToRel/UmlToRel"); - } + } } |