aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java')
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java
new file mode 100644
index 00000000..a9e0e311
--- /dev/null
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/validation/AssignmentValidationTest.java
@@ -0,0 +1,61 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.language.tests.validation;
7
8
9import com.google.inject.Inject;
10import org.eclipse.xtext.testing.InjectWith;
11import org.eclipse.xtext.testing.extensions.InjectionExtension;
12import org.junit.jupiter.api.Test;
13import org.junit.jupiter.api.extension.ExtendWith;
14import org.junit.jupiter.params.ParameterizedTest;
15import org.junit.jupiter.params.provider.ValueSource;
16import tools.refinery.language.model.tests.utils.ProblemParseHelper;
17import tools.refinery.language.tests.ProblemInjectorProvider;
18import tools.refinery.language.validation.ProblemValidator;
19
20import static org.hamcrest.MatcherAssert.assertThat;
21import static org.hamcrest.Matchers.*;
22
23@ExtendWith(InjectionExtension.class)
24@InjectWith(ProblemInjectorProvider.class)
25class AssignmentValidationTest {
26 @Inject
27 private ProblemParseHelper parseHelper;
28
29 @ParameterizedTest
30 @ValueSource(strings = {"""
31 pred foo(node a) <-> 5 is 5.
32 """, """
33 pred foo(node a) <-> b + 2 is 5.
34 """, """
35 pred foo(node a) <-> a is 5.
36 """, """
37 node(n).
38 pred foo(node a) <-> n is 5.
39 """, """
40 enum E { A, B }
41 pred foo(node a) <-> B is 5.
42 """})
43 void invalidAssignmentTest(String text) {
44 var problem = parseHelper.parse(text);
45 var issues = problem.validate();
46 assertThat(issues, hasItem(hasProperty("issueCode", is(
47 ProblemValidator.INVALID_ASSIGNMENT_ISSUE
48 ))));
49 }
50
51 @Test
52 void validAssignmentTest() {
53 var problem = parseHelper.parse("""
54 pred foo(node a) <-> b is 5.
55 """);
56 var issues = problem.validate();
57 assertThat(issues, not(hasItem(hasProperty("issueCode", is(
58 ProblemValidator.INVALID_ASSIGNMENT_ISSUE
59 )))));
60 }
61}