diff options
Diffstat (limited to 'language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend')
-rw-r--r-- | language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend | 46 |
1 files changed, 39 insertions, 7 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 index 9b1bb698..7a6eec6a 100644 --- 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 | |||
@@ -8,23 +8,55 @@ import org.eclipse.viatra.solver.language.model.problem.Problem | |||
8 | import org.eclipse.xtext.testing.InjectWith | 8 | import org.eclipse.xtext.testing.InjectWith |
9 | import org.eclipse.xtext.testing.extensions.InjectionExtension | 9 | import org.eclipse.xtext.testing.extensions.InjectionExtension |
10 | import org.eclipse.xtext.testing.util.ParseHelper | 10 | import org.eclipse.xtext.testing.util.ParseHelper |
11 | import org.junit.jupiter.api.Assertions | ||
12 | import org.junit.jupiter.api.Test | 11 | import org.junit.jupiter.api.Test |
13 | import org.junit.jupiter.api.^extension.ExtendWith | 12 | import org.junit.jupiter.api.^extension.ExtendWith |
14 | 13 | ||
14 | import static org.hamcrest.MatcherAssert.assertThat | ||
15 | import static org.hamcrest.Matchers.* | ||
16 | |||
15 | @ExtendWith(InjectionExtension) | 17 | @ExtendWith(InjectionExtension) |
16 | @InjectWith(ProblemInjectorProvider) | 18 | @InjectWith(ProblemInjectorProvider) |
17 | class ProblemParsingTest { | 19 | class ProblemParsingTest { |
18 | @Inject | 20 | @Inject |
19 | ParseHelper<Problem> parseHelper | 21 | ParseHelper<Problem> parseHelper |
20 | 22 | ||
23 | @Inject | ||
24 | extension ProblemTestUtil | ||
25 | |||
21 | @Test | 26 | @Test |
22 | def void loadModel() { | 27 | def void exampleTest() { |
23 | val result = parseHelper.parse(''' | 28 | val it = parseHelper.parse(''' |
24 | Hello Xtext! | 29 | class Family { |
30 | contains Person[] members | ||
31 | } | ||
32 | |||
33 | class Person { | ||
34 | Person[0..*] children opposite parent | ||
35 | Person[0..1] parent opposite children | ||
36 | int age | ||
37 | TaxStatus taxStatus | ||
38 | } | ||
39 | |||
40 | enum TaxStatus { | ||
41 | child, student, adult, retired | ||
42 | } | ||
43 | |||
44 | % A child cannot have any dependents. | ||
45 | error invalidTaxStatus(Person p) :- | ||
46 | taxStatus(p, child), children(p, _q). | ||
47 | |||
48 | Family('family'). | ||
49 | members('family', anne): true. | ||
50 | members('family', bob). | ||
51 | members('family', ciri). | ||
52 | children(anne, ciri). | ||
53 | ?children(bob, ciri). | ||
54 | taxStatus(anne, adult). | ||
55 | age(anne, 35). | ||
56 | bobAge: 27. | ||
57 | age(bob, bobAge). | ||
58 | !age(ciri, bobAge). | ||
25 | ''') | 59 | ''') |
26 | Assertions.assertNotNull(result) | 60 | assertThat(errors, empty) |
27 | val errors = result.eResource.errors | ||
28 | Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''') | ||
29 | } | 61 | } |
30 | } | 62 | } |