diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-06-27 14:22:40 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-06-27 14:22:40 +0200 |
commit | 07719e927f9d398765e661c84fd8778cefb39083 (patch) | |
tree | 9652080f7e580f09a0763a3e258348dea6e02684 /language/src/test | |
parent | Add enum support (diff) | |
download | refinery-07719e927f9d398765e661c84fd8778cefb39083.tar.gz refinery-07719e927f9d398765e661c84fd8778cefb39083.tar.zst refinery-07719e927f9d398765e661c84fd8778cefb39083.zip |
Simplify project layout
Diffstat (limited to 'language/src/test')
2 files changed, 99 insertions, 0 deletions
diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend new file mode 100644 index 00000000..b007cf8b --- /dev/null +++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * generated by Xtext 2.25.0 | ||
3 | */ | ||
4 | package org.eclipse.viatra.solver.language.tests | ||
5 | |||
6 | import com.google.inject.Inject | ||
7 | import org.eclipse.viatra.solver.language.model.problem.Problem | ||
8 | import org.eclipse.xtext.testing.InjectWith | ||
9 | import org.eclipse.xtext.testing.extensions.InjectionExtension | ||
10 | import org.eclipse.xtext.testing.util.ParseHelper | ||
11 | import org.junit.jupiter.api.Assertions | ||
12 | import org.junit.jupiter.api.Test | ||
13 | import org.junit.jupiter.api.^extension.ExtendWith | ||
14 | |||
15 | @ExtendWith(InjectionExtension) | ||
16 | @InjectWith(ProblemInjectorProvider) | ||
17 | class ProblemParsingTest { | ||
18 | @Inject | ||
19 | ParseHelper<Problem> parseHelper | ||
20 | |||
21 | @Test | ||
22 | def void loadModel() { | ||
23 | val result = parseHelper.parse(''' | ||
24 | Hello Xtext! | ||
25 | ''') | ||
26 | Assertions.assertNotNull(result) | ||
27 | val errors = result.eResource.errors | ||
28 | Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''') | ||
29 | } | ||
30 | } | ||
diff --git a/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java b/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java new file mode 100644 index 00000000..7d0ef1bb --- /dev/null +++ b/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | * generated by Xtext 2.26.0.M1 | ||
3 | */ | ||
4 | package org.eclipse.viatra.solver.language.tests; | ||
5 | |||
6 | import com.google.inject.Guice; | ||
7 | import com.google.inject.Injector; | ||
8 | import org.eclipse.viatra.solver.language.ProblemRuntimeModule; | ||
9 | import org.eclipse.viatra.solver.language.ProblemStandaloneSetup; | ||
10 | import org.eclipse.xtext.testing.GlobalRegistries; | ||
11 | import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; | ||
12 | import org.eclipse.xtext.testing.IInjectorProvider; | ||
13 | import org.eclipse.xtext.testing.IRegistryConfigurator; | ||
14 | |||
15 | public class ProblemInjectorProvider implements IInjectorProvider, IRegistryConfigurator { | ||
16 | |||
17 | protected GlobalStateMemento stateBeforeInjectorCreation; | ||
18 | protected GlobalStateMemento stateAfterInjectorCreation; | ||
19 | protected Injector injector; | ||
20 | |||
21 | static { | ||
22 | GlobalRegistries.initializeDefaults(); | ||
23 | } | ||
24 | |||
25 | @Override | ||
26 | public Injector getInjector() { | ||
27 | if (injector == null) { | ||
28 | this.injector = internalCreateInjector(); | ||
29 | stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); | ||
30 | } | ||
31 | return injector; | ||
32 | } | ||
33 | |||
34 | protected Injector internalCreateInjector() { | ||
35 | return new ProblemStandaloneSetup() { | ||
36 | @Override | ||
37 | public Injector createInjector() { | ||
38 | return Guice.createInjector(createRuntimeModule()); | ||
39 | } | ||
40 | }.createInjectorAndDoEMFRegistration(); | ||
41 | } | ||
42 | |||
43 | protected ProblemRuntimeModule createRuntimeModule() { | ||
44 | // make it work also with Maven/Tycho and OSGI | ||
45 | // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672 | ||
46 | return new ProblemRuntimeModule() { | ||
47 | @Override | ||
48 | public ClassLoader bindClassLoaderToInstance() { | ||
49 | return ProblemInjectorProvider.class | ||
50 | .getClassLoader(); | ||
51 | } | ||
52 | }; | ||
53 | } | ||
54 | |||
55 | @Override | ||
56 | public void restoreRegistry() { | ||
57 | stateBeforeInjectorCreation.restoreGlobalState(); | ||
58 | stateBeforeInjectorCreation = null; | ||
59 | } | ||
60 | |||
61 | @Override | ||
62 | public void setupRegistry() { | ||
63 | stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState(); | ||
64 | if (injector == null) { | ||
65 | getInjector(); | ||
66 | } | ||
67 | stateAfterInjectorCreation.restoreGlobalState(); | ||
68 | } | ||
69 | } | ||