diff --git a/inez.model.tests/.classpath b/inez.model.tests/.classpath
index 030981d..b0fcce7 100644
--- a/inez.model.tests/.classpath
+++ b/inez.model.tests/.classpath
@@ -3,6 +3,7 @@
+
diff --git a/inez.model.tests/pom.xml b/inez.model.tests/pom.xml
index f6a0d7b..c2fe960 100644
--- a/inez.model.tests/pom.xml
+++ b/inez.model.tests/pom.xml
@@ -53,6 +53,7 @@
org.eclipse.tycho
tycho-surefire-plugin
+ ${version.tycho}
true
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/BridiTestDataGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/BridiTestDataGenerator.java
new file mode 100644
index 0000000..35db835
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/BridiTestDataGenerator.java
@@ -0,0 +1,25 @@
+package io.github.magwas.inez;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class BridiTestDataGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate(
+ BRIDI_TEST_DATA_HEADER, "IdTestData", "ReferenceTestData");
+ String bridies = TestUtil.loadResourceAsString("bridies");
+ GeneratorUtil.mapToCode(bridies,
+ line -> MessageFormat.format(BRIDI_TEST_DATA_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA, 4)),
+ builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/GeneratorPatternConstants.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/GeneratorPatternConstants.java
new file mode 100644
index 0000000..8252cc2
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/GeneratorPatternConstants.java
@@ -0,0 +1,47 @@
+package io.github.magwas.inez;
+
+public interface GeneratorPatternConstants {
+ String GET_RELATIVE_FOR_BRIDI_ELEMENT_PATTERN = "\twhen(mock.apply({0}_ID, {1}_ID, {2}, {3})).thenReturn(Stream.of({4}_ID));\n";
+ String BRIDI_TEST_DATA_PATTERN = "\tBridi {0} = new Bridi({1}, {2},{3});\n";
+ String BRIDI_TEST_DATA_HEADER = """
+ import java.util.List;
+ import io.github.magwas.inez.parse.IdTestData;
+ import io.github.magwas.inez.parse.IdUtil;
+ import io.github.magwas.inez.parse.ParserConstants;
+ import io.github.magwas.inez.parse.ReferenceTestData;
+
+ """;
+ String SUMTI_REPOSITORY_STUB_PATTERN = "\twhen(mock.findById({0}_ID)).thenReturn(Optional.of({0}_SUMTI));\n";
+ String SUMTI_REPOSITORY_STUB_EXTRA = "\twhen(mock.findAllByRepresentation(GO_REPR)).thenReturn(Set.of(GO_SUMTI, GO2_SUMTI));\n";
+ String SUMTI_REPOSITORY_STUB_HEADER = """
+ import java.util.Set;
+ import java.util.Optional;
+ import io.github.magwas.inez.storage.model.SumtiTestData;
+ """;
+ String SUMTI_TESTDATA_PATTERN = "\tSumti {0}_SUMTI = new Sumti({1}, {2});\n";
+ String BRIDI_REFERENCE_PATTERN = """
+ BridiReference {0}_REFERENCE_0 = new BridiReference(
+ IdUtil.createID({0}_ID+0), {0}_ID, {1}_ID, 0, {1}_ID);
+ BridiReference {0}_REFERENCE_1 = new BridiReference(
+ IdUtil.createID({0}_ID+1), {0}_ID, {1}_ID, 1, {2}_ID);
+ BridiReference {0}_REFERENCE_2 = new BridiReference(
+ IdUtil.createID({0}_ID+2), {0}_ID, {1}_ID, 2, {3}_ID);
+ List {0}_REFERENCELIST = List.of(
+ {0}_REFERENCE_0, {0}_REFERENCE_1,
+ {0}_REFERENCE_2);
+ """;
+ String BRIDI_REFERENCE_HEADER = """
+ import io.github.magwas.inez.parse.IdTestData;
+ import io.github.magwas.inez.parse.IdUtil;
+ import java.util.List;
+ """;
+ String FIND_ALL_BY_REPRESENTATION_STUB_HEADER = """
+ import java.util.stream.Stream;
+
+ import io.github.magwas.inez.BridiTestData;
+ import io.github.magwas.inez.parse.ParserConstants;
+ """;
+ String FIND_ALL_ID_BY_REPRESENTATION_STUB_PATTERN = "\t\twhen(mock.apply({0})).thenAnswer((args) -> Stream.of({1}));\n";
+ String FIND_ALL_BY_REPRESENTATION_STUB_PATTERN = "\t\twhen(mock.apply({0})).thenAnswer((args) -> Stream.of({1}));\n";
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStubGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStubGenerator.java
new file mode 100644
index 0000000..5c597e3
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStubGenerator.java
@@ -0,0 +1,27 @@
+package io.github.magwas.inez.element;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class GetRelativeForBridiElementServiceStubGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.stubBoilerPlate("""
+ import java.util.stream.Stream;
+ """, "BridiElementTestData");
+ String relatives = TestUtil.loadResourceAsString("relatives");
+ GeneratorUtil.mapToCode(relatives,
+ line -> MessageFormat.format(GET_RELATIVE_FOR_BRIDI_ELEMENT_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA)),
+ builder);
+ return GeneratorUtil.stubTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStubGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStubGenerator.java
new file mode 100644
index 0000000..d67ff57
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStubGenerator.java
@@ -0,0 +1,26 @@
+package io.github.magwas.inez.storage;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class FindAllByRepresentationServiceStubGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.stubBoilerPlate(
+ FIND_ALL_BY_REPRESENTATION_STUB_HEADER, "BridiTestData");
+ String sumties = TestUtil.loadResourceAsString("byrepresentation");
+ GeneratorUtil.mapToCode(sumties, line -> {
+ return MessageFormat.format(FIND_ALL_BY_REPRESENTATION_STUB_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA, 2));
+ }, builder);
+ return GeneratorUtil.stubTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStubGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStubGenerator.java
new file mode 100644
index 0000000..2937fec
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStubGenerator.java
@@ -0,0 +1,28 @@
+package io.github.magwas.inez.storage;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class FindAllIdByRepresentationServiceStubGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.stubBoilerPlate(
+ FIND_ALL_BY_REPRESENTATION_STUB_HEADER, "BridiTestData");
+ String sumties = TestUtil.loadResourceAsString("byrepresentation");
+ GeneratorUtil.mapToCode(sumties, line -> {
+ String[] parts = line.split(RuntimeConstants.COMMA, 2);
+ String[] rest = parts[1].split(RuntimeConstants.COMMA);
+ return MessageFormat.format(FIND_ALL_ID_BY_REPRESENTATION_STUB_PATTERN,
+ parts[0], parts[1].replaceAll(",", "_ID,").replaceAll("$", "_ID"));
+ }, builder);
+ return GeneratorUtil.stubTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/BridiReferenceTestDataGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/BridiReferenceTestDataGenerator.java
new file mode 100644
index 0000000..1127ad8
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/BridiReferenceTestDataGenerator.java
@@ -0,0 +1,26 @@
+package io.github.magwas.inez.storage.model;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class BridiReferenceTestDataGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil
+ .testDataBoilerPlate(BRIDI_REFERENCE_HEADER, "IdTestData");
+ String bridireferences = TestUtil.loadResourceAsString("bridireferences");
+ GeneratorUtil.mapToCode(bridireferences,
+ line -> MessageFormat.format(BRIDI_REFERENCE_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA)),
+ builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/SumtiTestDataGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/SumtiTestDataGenerator.java
new file mode 100644
index 0000000..166ba7f
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/model/SumtiTestDataGenerator.java
@@ -0,0 +1,26 @@
+package io.github.magwas.inez.storage.model;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class SumtiTestDataGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate(
+ "import io.github.magwas.inez.parse.IdTestData;", "IdTestData");
+ String sumties = TestUtil.loadResourceAsString("sumties");
+ GeneratorUtil.mapToCode(sumties,
+ line -> MessageFormat.format(SUMTI_TESTDATA_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA)),
+ builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/repository/SumtiRepositoryStubGenerator.java b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/repository/SumtiRepositoryStubGenerator.java
new file mode 100644
index 0000000..568a0e0
--- /dev/null
+++ b/inez.model.tests/src/generators-java/io/github/magwas/inez/storage/repository/SumtiRepositoryStubGenerator.java
@@ -0,0 +1,27 @@
+package io.github.magwas.inez.storage.repository;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.inez.GeneratorPatternConstants;
+import io.github.magwas.runtime.GeneratorUtil;
+import io.github.magwas.runtime.RuntimeConstants;
+import io.github.magwas.testing.TestUtil;
+
+public class SumtiRepositoryStubGenerator
+ implements Supplier, GeneratorPatternConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil
+ .stubBoilerPlate(SUMTI_REPOSITORY_STUB_HEADER, "SumtiTestData");
+ String sumties = TestUtil.loadResourceAsString("sumties");
+ GeneratorUtil.mapToCode(sumties,
+ line -> MessageFormat.format(SUMTI_REPOSITORY_STUB_PATTERN,
+ (Object[]) line.split(RuntimeConstants.COMMA)),
+ builder);
+ builder.append(SUMTI_REPOSITORY_STUB_EXTRA);
+ return GeneratorUtil.stubTail(builder);
+ }
+
+}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/BridiTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/BridiTestData.java
deleted file mode 100644
index 59bfab2..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/BridiTestData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package io.github.magwas.inez;
-
-import java.util.List;
-import java.util.Set;
-
-import io.github.magwas.inez.element.BridiElementTestData;
-import io.github.magwas.inez.parse.IdUtil;
-import io.github.magwas.inez.parse.ParserConstants;
-
-public interface BridiTestData extends BridiElementTestData {
-
- Bridi ALICE = new Bridi(IdUtil.createID(ALICE_REPR), ALICE_REPR, List.of());
-
- Bridi GO1 = new Bridi(GO1_ID, GO_REPRESENTATION, null);
- Bridi GO2 = new Bridi(GO2_ID, GO_REPRESENTATION, null);
- Bridi SUMTI_IS_A_THING_IS_A_THING = new Bridi(
- SUMTI_IS_A_THING_IS_A_THING_ID,
- SUMTI_IS_A_THING_IS_A_THING_REPR_NOREFERENCE,
- SUMTI_IS_A_THING_IS_A_THING_REFERENCES);
- Bridi TAUTOLOGY_IS_A_THING =
- new Bridi(TAUTOLOGY_IS_A_THING_ID, TAUTOLOGY_IS_A_THING_REPR, SUMTI_IS_A_THING_IS_A_THING_REFERENCES);
- Bridi THING = new Bridi(THING_ID, THING_REPR, null);
- Bridi THING_CHANGED = new Bridi(THING_ID, "thung", null);
- Bridi THING_GENERATED = new Bridi(IdUtil.createID(THING_REPR), THING_REPR, null);
- Bridi SUMTI = new Bridi(SUMTI_ID, SUMTI_REPR, null);
- Bridi NONEXISTENT = new Bridi(NONEXISTENT_ID, NONEXISTENT_REPR, null);
- Bridi BRIDI = new Bridi(BRIDI_ID, BRIDI_REPR, null);
- Bridi IS_A = new Bridi(IS_A_ID, IS_A_REPR, null);
- Bridi IS_A_NONSAVED = new Bridi(IdUtil.createID(IS_A_REPR), IS_A_REPR, null);
- Bridi ANY = new Bridi(ParserConstants.QUERY_BRIDI_ID, ParserConstants.QUERY_BRIDI_ID, null);
-
- Bridi SUMTI_IS_A_THING = new Bridi(SUMTI_IS_A_THING_ID, SUMTI_IS_A_THING_REPR, SUMTI_IS_A_THING_REFERENCES);
- Bridi SUMTI_IS_A_THING_GENERATED =
- new Bridi(SUMTI_IS_A_THING_ID, SUMTI_IS_A_THING_REPR, SUMTI_IS_A_THING_GENERATED_REFERENCES);
- Bridi SUMTI_IS_A_THING_CHANGED =
- new Bridi(SUMTI_IS_A_THING_ID, SUMTI_IS_A_THING_CHANGED_REPR, SUMTI_IS_A_THING_CHANGED_REFERENCES);
- Bridi TAUTOLOGY = new Bridi(TAUTOLOGY_ID, TAUTOLOGY_REPR, SUMTI_IS_A_THING_CHANGED_REFERENCES);
- Bridi THING_IS_A_SUMTI = new Bridi(THING_IS_A_SUMTI_ID, TAUTOLOGY_REPR, THING_IS_A_SUMTI_REFERENCES);
-
- Bridi GOD = new Bridi(GOD_ID, GOD_REPR, null);
- Bridi HUMAN = new Bridi(HUMAN_ID, HUMAN_REPR, null);
- Bridi MY_MODEL = new Bridi(MY_MODEL_ID, MY_MODEL_REPR, null);
- Set SIMPLE_QUERY_OUTPUT =
- Set.of(TAUTOLOGY, SUMTI_IS_A_THING_IS_A_THING, TAUTOLOGY_IS_A_THING, SUMTI_IS_A_THING);
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/InezImplStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/InezImplStub.java
index 03aeef2..317079c 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/InezImplStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/InezImplStub.java
@@ -2,9 +2,7 @@
import static org.mockito.Mockito.mock;
-import io.github.magwas.inez.element.BridiElementTestData;
-
-public class InezImplStub implements BridiElementTestData, BridiTestData {
+public class InezImplStub {
public static InezImpl stub() {
return mock(InezImpl.class);
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/InezProblemTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/InezProblemTestData.java
index d69900d..7c2643a 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/InezProblemTestData.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/InezProblemTestData.java
@@ -7,6 +7,6 @@
public interface InezProblemTestData extends SumtiTestData {
InezProblem PROBLEM =
- new InezProblem("each element is within a containerID", "each element is within a container", GO1_SUMTI);
+ new InezProblem("each element is within a containerID", "each element is within a container", GO_SUMTI);
List PROBLEMS = List.of(PROBLEM);
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementEndToEndTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementEndToEndTest.java
index 5f71187..abc24dd 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementEndToEndTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementEndToEndTest.java
@@ -26,7 +26,7 @@
@Tag("end-to-end")
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = TestConfig.class)
-class BridiElementEndToEndTest implements BridiTestData {
+class BridiElementEndToEndTest implements BridiTestData, BridiElementTestData {
@Autowired
SumtiRepository sumtiRepository;
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementSystemInitializationServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementSystemInitializationServiceStub.java
index e296633..849a8a9 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementSystemInitializationServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementSystemInitializationServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.element;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class BridiElementSystemInitializationServiceStub {
- static BridiElementSystemInitializationService stub() {
- return mock(BridiElementSystemInitializationService.class);
- }
-}
+@IndirectlyTested
+public class BridiElementSystemInitializationServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementTestData.java
index 2b97419..436308e 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementTestData.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/element/BridiElementTestData.java
@@ -1,29 +1,11 @@
package io.github.magwas.inez.element;
-import java.util.List;
import java.util.Set;
-import io.github.magwas.inez.parse.BridiFieldTestData;
-import io.github.magwas.inez.parse.IdUtil;
+import io.github.magwas.inez.parse.IdTestData;
+
+public interface BridiElementTestData extends IdTestData {
-public interface BridiElementTestData extends BridiFieldTestData {
- String DOG_ID = "id:dog";
- String CONTAINS_ID = "CONTAINS";
- String ROOT_ID = "ROOT";
- String ELEMENT_MODEL_ID = "id:elementModel";
- String CONTAINER_ID = "CONTAINER";
- String CONTAINS_ELEMENT_REPR = "{my model} contains {alice}";
- String CONTAINS_ELEMENT_ID = IdUtil.createID(CONTAINS_ELEMENT_REPR);
- String MY_MODEL_REPR = "my model";
- String MY_MODEL_ID = IdUtil.createID(MY_MODEL_REPR);
- String FOLDER_ID = IdUtil.createID("folder");
- String ALICE_IS_A_HUMAN_ID = "id:{alice} is a {human}";
- String HUMAN_IS_A_ANIMAL_ID = "id:{human} is a {animal}";
- String DOG_IS_A_ANIMAL_ID = "id:{dog} is a {animal}";
- String MY_MODEL_IS_A_FOLDER_ID = "id:{my model} is a {folder}";
- List CONTAINS_ELEMENT_REFERENCES = List.of(CONTAINS_ID, MY_MODEL_ID, ALICE_ID);
- String HUMAN_REPR = "human";
- String HUMAN_ID = IdUtil.createID(HUMAN_REPR);
Set MY_FOLDER_CHILDREN = Set.of(
ALICE_ID,
HUMAN_ID,
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStub.java
deleted file mode 100644
index f259d42..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/element/GetRelativeForBridiElementServiceStub.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package io.github.magwas.inez.element;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.stream.Stream;
-
-public class GetRelativeForBridiElementServiceStub implements BridiElementTestData {
- public static GetRelativeForBridiElementService stub() {
- GetRelativeForBridiElementService mock = mock(GetRelativeForBridiElementService.class);
- when(mock.apply(HUMAN_ID, IS_A_ID, 1, 2)).thenReturn(Stream.of(THING_ID));
- when(mock.apply(ROOT_ID, IS_A_ID, 1, 2)).thenReturn(Stream.of(CONTAINER_ID));
- when(mock.apply(MY_MODEL_ID, IS_A_ID, 1, 2)).thenReturn(Stream.of(FOLDER_ID));
- when(mock.apply(FOLDER_ID, IS_A_ID, 1, 2)).thenReturn(Stream.of(CONTAINER_ID));
- return mock;
- }
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromDefinitionServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromDefinitionServiceStub.java
index c3e6d64..35d4341 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromDefinitionServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromDefinitionServiceStub.java
@@ -1,10 +1,6 @@
package io.github.magwas.inez.query;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class CreateBridisFromDefinitionServiceStub {
-
- static CreateBridisFromDefinitionService stub() {
- return mock(CreateBridisFromDefinitionService.class);
- }
-}
+@IndirectlyTested
+public class CreateBridisFromDefinitionServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputServiceStub.java
index cb912a1..0abca87 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.query;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class CreateBridisFromParserOutputServiceStub {
- static CreateBridisFromParserOutputService stub() {
- return mock(CreateBridisFromParserOutputService.class);
- }
-}
+@IndirectlyTested
+public class CreateBridisFromParserOutputServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputTest.java
index 057d737..bf1cfd0 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputTest.java
@@ -13,6 +13,7 @@
import io.github.magwas.inez.BridiTestData;
import io.github.magwas.inez.parse.ParserOutputTestData;
import io.github.magwas.testing.TestBase;
+import io.github.magwas.testing.TestUtil;
class CreateBridisFromParserOutputTest extends TestBase implements BridiTestData, ParserOutputTestData {
@InjectMocks
@@ -24,6 +25,7 @@ void test() {
Set expected = Set.of(THING_GENERATED, IS_A_NONSAVED, SUMTI, SUMTI_IS_A_THING_GENERATED);
Set actual =
createBridisFromParserOutput.apply(OUTPUT_SUMTI_IS_A_THING).collect(Collectors.toSet());
+ TestUtil.diffCollections(expected, actual);
assertEquals(expected, actual);
}
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromQueryServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromQueryServiceStub.java
index 6e4331b..419d9f2 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromQueryServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/CreateBridisFromQueryServiceStub.java
@@ -1,10 +1,6 @@
package io.github.magwas.inez.query;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class CreateBridisFromQueryServiceStub {
-
- static CreateBridisFromQueryService stub() {
- return mock(CreateBridisFromQueryService.class);
- }
-}
+@IndirectlyTested
+public class CreateBridisFromQueryServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorEndToEndTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorEndToEndTest.java
index 865ad68..16e8f7c 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorEndToEndTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorEndToEndTest.java
@@ -25,13 +25,14 @@
import io.github.magwas.inez.TestConfig;
import io.github.magwas.inez.functions.Save;
import io.github.magwas.inez.osgi.SpringBootBundleActivator;
+import io.github.magwas.inez.parse.InputTestData;
import io.github.magwas.runtime.LogUtil;
import io.github.magwas.testing.TestUtil;
@Tag("end-to-end")
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = TestConfig.class)
-class QueryProcessorEndToEndTest implements BridiTestData {
+class QueryProcessorEndToEndTest implements QueryProcessorTestData, InputTestData, BridiTestData {
@Autowired
InezImpl inez;
@@ -40,8 +41,7 @@ class QueryProcessorEndToEndTest implements BridiTestData {
void setUp() throws IOException {
ServiceReference sr = mock(ServiceReference.class);
BundleContext ctx = mock(BundleContext.class);
- when((ServiceReference) ctx.getServiceReference("io.github.magwas.inez.functions.Save"))
- .thenReturn(sr);
+ when((ServiceReference) ctx.getServiceReference(SAVE_CLASS_NAME)).thenReturn(sr);
when(ctx.getService(sr)).thenReturn(new Save());
SpringBootBundleActivator.bundleContext = ctx;
inez.initialize();
@@ -52,18 +52,17 @@ void test1() {
inez.create(TEST_TEXT).peek(x -> LogUtil.debug("created:" + x)).toList();
assertEquals(List.of(ALICE), inez.findAllByRepresentation(ALICE_REPR).toList());
assertQuery(Set.of(ALICE_REPR), ALICE_REPR);
- assertQuery(Set.of(ALICE_EATS_BANANA), ALICE_EATS_BANANA);
- assertQuery(Set.of(ALICE_EATS_BANANA, BOB_EATS_BANANA, CECILE_EATS_BANANA), "{$?} {{eats} {banana}}");
- assertQuery(Set.of(CECILE_EATS_BANANA, CECILE_LOOKS_AT_BANANA), "{cecile} {{$?} {banana}}");
- assertQuery(Set.of(ALICE_EATS_BANANA, ALICE_EATS_CHIPS), "{alice} {{eats} {$?}}");
- assertQuery(Set.of("putty"), "doSave {" + "putty" + "}");
- assertEquals(1, inez.findAllByRepresentation("putty").count());
- List putty = inez.findAllByRepresentation("putty").toList();
+ assertQuery(Set.of(ALICE_EATS_BANANA_REPR), ALICE_EATS_BANANA_REPR);
assertQuery(
- Set.of("osgi", "bitch", "{0} is a {1}", "{osgi} is a {bitch}"),
- "doSave {" + "{osgi} is a {bitch}" + "}");
- assertEquals(1, inez.findAllByRepresentation("osgi").count());
- assertEquals(1, inez.findAllByRepresentation("bitch").count());
+ Set.of(ALICE_EATS_BANANA_REPR, BOB_EATS_BANANA_REPR, CECILE_EATS_BANANA_REPR), WHO_EATS_BANANA_INPUT);
+ assertQuery(Set.of(CECILE_EATS_BANANA_REPR, CECILE_LOOKS_AT_BANANA_REPR), CECILE_WHAT_BANANA_INPUT);
+ assertQuery(Set.of(ALICE_EATS_BANANA_REPR, ALICE_EATS_CHIPS_REPR), ALICE_EATS_WHAT_INPUT);
+ assertQuery(Set.of(PUTTY_REPR), DO_SAVE_PUTTY_INPUT);
+ assertEquals(1, inez.findAllByRepresentation(PUTTY_REPR).count());
+ List putty = inez.findAllByRepresentation(PUTTY_REPR).toList();
+ assertQuery(Set.of(OSGI_REPR, BITCH_REPR, IS_A_REPR, OSGI_IS_A_BITCH_REPR), DO_SAVE_OSGI_IS_A_BITCH_INPUT);
+ assertEquals(1, inez.findAllByRepresentation(OSGI_REPR).count());
+ assertEquals(1, inez.findAllByRepresentation(BITCH_REPR).count());
assertEquals(1, putty.size());
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorServiceStub.java
index 36e7a30..040ca6d 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.query;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class QueryProcessorServiceStub {
- static QueryProcessorService stub() {
- return mock(QueryProcessorService.class);
- }
-}
+@IndirectlyTested
+public class QueryProcessorServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTest.java
index f6ae8d3..41fe95d 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTest.java
@@ -11,12 +11,12 @@
import org.mockito.InjectMocks;
import io.github.magwas.inez.Bridi;
-import io.github.magwas.inez.BridiTestData;
import io.github.magwas.inez.parse.ParserConstants;
+import io.github.magwas.runtime.LogUtil;
import io.github.magwas.testing.TestBase;
import io.github.magwas.testing.TestUtil;
-class QueryProcessorTest extends TestBase implements BridiTestData {
+class QueryProcessorTest extends TestBase implements QueryProcessorTestData {
@InjectMocks
QueryProcessorService queryProcessor;
@@ -24,7 +24,7 @@ class QueryProcessorTest extends TestBase implements BridiTestData {
@Test
@DisplayName("for a nonexisting sumti returns the empty list")
void test() {
- Stream actual = queryProcessor.apply(QUERY_NONEXISTING);
+ Stream actual = queryProcessor.apply(NONEXISTING_INPUT);
TestUtil.assertStreamEquals(Set.of(), actual);
}
@@ -37,13 +37,14 @@ void test_1() {
@Test
@DisplayName("if more sumtis exist with the representation, return them all")
void test_2() {
- TestUtil.assertStreamEquals(Set.of(GO1, GO2), queryProcessor.apply(GO_REPRESENTATION));
+ TestUtil.assertStreamEquals(Set.of(GO, GO2), queryProcessor.apply(GO_REPR));
}
@Test
@DisplayName("for a reference, return the referenced bridi")
void test_3() {
- TestUtil.assertStreamEquals(Set.of(GO1), queryProcessor.apply(GO1_REFERENCE));
+ LogUtil.addDebuggedClass(QueryProcessorService.class);
+ TestUtil.assertStreamEquals(Set.of(GO), queryProcessor.apply(GO1_REFERENCE));
}
@Test
@@ -73,7 +74,7 @@ void test_7() {
@Test
@DisplayName("for a bridi where one of the sumties is '$?', the matching bridies return")
void test1() {
- TestUtil.assertStreamEquals(SIMPLE_QUERY_OUTPUT, queryProcessor.apply(QUERY_STRING_SIMPLE));
+ TestUtil.assertStreamEquals(SIMPLE_QUERY_OUTPUT, queryProcessor.apply(SIMPLE_INPUT));
}
@Test
@@ -81,19 +82,19 @@ void test1() {
void test1_1() {
assertThrows(
ParseCancellationException.class,
- () -> queryProcessor.apply(QUERY_STRING_ALL_ANY).toArray());
+ () -> queryProcessor.apply(ALL_ANY_INPUT).toArray());
}
@Test
@DisplayName("if no stored bridi matches the query with '$?', and empty list is returned")
void test2() {
- TestUtil.assertStreamEquals(Set.of(), queryProcessor.apply(QUERY_STRING_NONMATCHING));
+ TestUtil.assertStreamEquals(Set.of(), queryProcessor.apply(NONMATCHING_INPUT));
}
@Test
@DisplayName("query works with the '$?' being deep down in the query")
void test3() {
- Stream actual = queryProcessor.apply(RECURSIVE_QUERY);
+ Stream actual = queryProcessor.apply(RECURSIVE_INPUT);
TestUtil.assertStreamEquals(Set.of(SUMTI_IS_A_THING_IS_A_THING, TAUTOLOGY_IS_A_THING), actual);
}
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTestData.java
new file mode 100644
index 0000000..75cc7cd
--- /dev/null
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/query/QueryProcessorTestData.java
@@ -0,0 +1,25 @@
+package io.github.magwas.inez.query;
+
+import java.util.Set;
+
+import io.github.magwas.inez.Bridi;
+import io.github.magwas.inez.BridiTestData;
+import io.github.magwas.inez.parse.RepresentationTestData;
+
+public interface QueryProcessorTestData
+ extends RepresentationTestData, BridiTestData {
+ String TEST_TEXT = """
+ {{sumti} is a {THING}} is a {THING}
+ {{THING} is a {THING}} is a {THING}
+ {alice} {{eats} {banana}}
+ {alice} {{eats} {chips}}
+ {bob} {{eats} {banana}}
+ {bob} {{eats} {chips}}
+ {cecile} {{eats} {banana}}
+ {cecile} {{looks at} {banana}}
+ {sumti} is a {THING}
+ {THING} is a {THING}""";
+ String SAVE_CLASS_NAME = "io.github.magwas.inez.functions.Save";
+ Set SIMPLE_QUERY_OUTPUT = Set.of(TAUTOLOGY,
+ SUMTI_IS_A_THING_IS_A_THING, TAUTOLOGY_IS_A_THING, SUMTI_IS_A_THING);
+}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceStub.java
index ad51fd0..3f93ea5 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class AddReferencesServiceStub {
- public static AddReferencesService stub() {
- return mock(AddReferencesService.class);
- }
-}
+@IndirectlyTested
+public class AddReferencesServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceTest.java
index 5198f80..e41f0c6 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesServiceTest.java
@@ -12,11 +12,11 @@
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
-import io.github.magwas.inez.parse.BridiFieldTestData;
+import io.github.magwas.inez.parse.IdTestData;
import io.github.magwas.inez.storage.model.BridiReference;
import io.github.magwas.testing.TestBase;
-class AddReferencesServiceTest extends TestBase implements BridiFieldTestData {
+class AddReferencesServiceTest extends TestBase implements IdTestData {
@InjectMocks
AddReferencesService addReferences;
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesTest.java
index 6a251a1..b3ea365 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/AddReferencesTest.java
@@ -7,10 +7,11 @@
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
+import io.github.magwas.inez.parse.ReferenceTestData;
import io.github.magwas.inez.storage.model.BridiReferenceTestData;
import io.github.magwas.testing.TestBase;
-class AddReferencesTest extends TestBase implements BridiReferenceTestData {
+class AddReferencesTest extends TestBase implements BridiReferenceTestData, ReferenceTestData {
@InjectMocks
AddReferencesService addReferences;
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreChangeListenersServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreChangeListenersServiceStub.java
index 543d6fd..4a9aafe 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreChangeListenersServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreChangeListenersServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class BridiStoreChangeListenersServiceStub {
- public static BridiStoreChangeListenersService stub() {
- return mock(BridiStoreChangeListenersService.class);
- }
-}
+@IndirectlyTested
+public class BridiStoreChangeListenersServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreEndToEndTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreEndToEndTest.java
index f757b5b..985aa84 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreEndToEndTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/BridiStoreEndToEndTest.java
@@ -17,13 +17,14 @@
import io.github.magwas.inez.BridiTestData;
import io.github.magwas.inez.InezImpl;
import io.github.magwas.inez.TestConfig;
+import io.github.magwas.inez.query.QueryProcessorTestData;
import io.github.magwas.runtime.LogUtil;
import io.github.magwas.testing.TestUtil;
@Tag("end-to-end")
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = TestConfig.class)
-class BridiStoreEndToEndTest implements BridiTestData {
+class BridiStoreEndToEndTest implements QueryProcessorTestData, BridiTestData {
@Autowired
InezImpl inez;
@@ -33,8 +34,8 @@ void test() {
inez.create(TEST_TEXT).toArray();
assertEquals(List.of(ALICE), inez.findAllByRepresentation("alice").toList());
- inez.save(Set.of(GO1, GO2));
- inez.findAllByRepresentation(GO_REPRESENTATION).forEach(x -> LogUtil.debug("go", x));
+ inez.save(Set.of(GO, GO2));
+ inez.findAllByRepresentation(GO_REPR).forEach(x -> LogUtil.debug("go", x));
String CECILE_EATS_BANANA_REPR = "{cecile} {{eats} {banana}}";
String CECILE_LOOKS_AT_BANANA_REPR = "{cecile} {{looks at} {banana}}";
Bridi cecile_eats_banana = assertGotTheBridi(CECILE_EATS_BANANA_REPR, inez.query(CECILE_EATS_BANANA_REPR));
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateBridiFromSumtiServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateBridiFromSumtiServiceStub.java
index 72fe32b..974b528 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateBridiFromSumtiServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateBridiFromSumtiServiceStub.java
@@ -12,7 +12,7 @@ public static CreateBridiFromSumtiService stub() {
when(mock.apply(THING_SUMTI)).thenReturn(THING);
when(mock.apply(SUMTI_IS_A_THING_CHANGED_SUMTI)).thenReturn(SUMTI_IS_A_THING_CHANGED);
when(mock.apply(SUMTI_IS_A_THING_SUMTI)).thenReturn(SUMTI_IS_A_THING);
- when(mock.apply(GO1_SUMTI)).thenReturn(GO1);
+ when(mock.apply(GO_SUMTI)).thenReturn(GO);
when(mock.apply(GO2_SUMTI)).thenReturn(GO2);
when(mock.apply(null)).thenThrow(new NullPointerException());
return mock;
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateSumtiServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateSumtiServiceStub.java
index 03b7037..02d6b9a 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateSumtiServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/CreateSumtiServiceStub.java
@@ -1,10 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class CreateSumtiServiceStub {
-
- static CreateSumtiService stub() {
- return mock(CreateSumtiService.class);
- }
-}
+@IndirectlyTested
+public class CreateSumtiServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/DeleteBridiServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/DeleteBridiServiceStub.java
index c0a3e91..9610a94 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/DeleteBridiServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/DeleteBridiServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class DeleteBridiServiceStub {
- public static DeleteBridiService stub() {
- return mock(DeleteBridiService.class);
- }
-}
+@IndirectlyTested
+public class DeleteBridiServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStub.java
deleted file mode 100644
index f101736..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationServiceStub.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package io.github.magwas.inez.storage;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.stream.Stream;
-
-import io.github.magwas.inez.BridiTestData;
-import io.github.magwas.inez.parse.ParserConstants;
-
-public class FindAllByRepresentationServiceStub implements BridiTestData {
- public static FindAllByRepresentationService stub() {
- FindAllByRepresentationService mock = mock(FindAllByRepresentationService.class);
- when(mock.apply(THING_REPR)).thenAnswer((args) -> Stream.of(THING));
- when(mock.apply(GO_REPRESENTATION)).thenAnswer((args) -> Stream.of(GO1, GO2));
- when(mock.apply(SUMTI_IS_A_THING_REPR)).thenAnswer((args) -> Stream.of(SUMTI_IS_A_THING));
- when(mock.apply(ParserConstants.QUERY_BRIDI_ID)).thenAnswer((args) -> Stream.of(ANY));
- return mock;
- }
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationTest.java
index 47ac049..989a247 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllByRepresentationTest.java
@@ -20,8 +20,6 @@ class FindAllByRepresentationTest extends TestBase implements BridiTestData {
@Test
@DisplayName("finds all bridis based on a representation")
void test() {
- assertEquals(
- Set.of(GO1, GO2),
- findAllByRepresentation.apply(GO_REPRESENTATION).collect(Collectors.toSet()));
+ assertEquals(Set.of(GO, GO2), findAllByRepresentation.apply(GO_REPR).collect(Collectors.toSet()));
}
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStub.java
deleted file mode 100644
index e7f3b98..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationServiceStub.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package io.github.magwas.inez.storage;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.stream.Stream;
-
-import io.github.magwas.inez.BridiTestData;
-import io.github.magwas.inez.parse.ParserConstants;
-
-public class FindAllIdByRepresentationServiceStub implements BridiTestData {
- public static FindAllIdByRepresentationService stub() {
- FindAllIdByRepresentationService mock = mock(FindAllIdByRepresentationService.class);
- when(mock.apply(THING_REPR)).thenAnswer((args) -> Stream.of(THING_ID));
- when(mock.apply(GO_REPRESENTATION)).thenAnswer((args) -> Stream.of(GO1_ID, GO2_ID));
- when(mock.apply(SUMTI_IS_A_THING_REPR)).thenAnswer((args) -> Stream.of(SUMTI_IS_A_THING_ID));
- when(mock.apply(ParserConstants.QUERY_BRIDI_ID))
- .thenAnswer((args) -> Stream.of(ParserConstants.QUERY_BRIDI_ID));
- when(mock.apply(IS_A_REPR)).thenAnswer((args) -> Stream.of(IS_A_ID));
-
- return mock;
- }
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationTest.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationTest.java
index 8012677..516dec9 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationTest.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindAllIdByRepresentationTest.java
@@ -9,10 +9,10 @@
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
-import io.github.magwas.inez.parse.BridiFieldTestData;
+import io.github.magwas.inez.parse.IdTestData;
import io.github.magwas.testing.TestBase;
-class FindAllIdByRepresentationTest extends TestBase implements BridiFieldTestData {
+class FindAllIdByRepresentationTest extends TestBase implements IdTestData {
@InjectMocks
FindAllIdByRepresentationService findAllIdByRepresentation;
@@ -20,7 +20,6 @@ class FindAllIdByRepresentationTest extends TestBase implements BridiFieldTestDa
@DisplayName("returns the ids of all the sumties with the given representation")
void test() {
assertEquals(
- Set.of(GO1_ID, GO2_ID),
- findAllIdByRepresentation.apply(GO_REPRESENTATION).collect(Collectors.toSet()));
+ Set.of(GO_ID, GO2_ID), findAllIdByRepresentation.apply(GO_REPR).collect(Collectors.toSet()));
}
}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindBridiByIdServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindBridiByIdServiceStub.java
index 0a2ad40..fdbe7d2 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindBridiByIdServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/FindBridiByIdServiceStub.java
@@ -11,7 +11,7 @@
public class FindBridiByIdServiceStub implements BridiTestData {
public static FindBridiByIdService stub() {
FindBridiByIdService mock = mock(FindBridiByIdService.class);
- when(mock.apply(GO1_ID)).thenReturn(Optional.of(GO1));
+ when(mock.apply(GO_ID)).thenReturn(Optional.of(GO));
when(mock.apply(GO2_ID)).thenReturn(Optional.of(GO2));
when(mock.apply(SUMTI_IS_A_THING_IS_A_THING_ID)).thenReturn(Optional.of(SUMTI_IS_A_THING_IS_A_THING));
when(mock.apply(TAUTOLOGY_IS_A_THING_ID)).thenReturn(Optional.of(TAUTOLOGY_IS_A_THING));
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/GetBridiIdBySelbriAndSumtiIdsServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/GetBridiIdBySelbriAndSumtiIdsServiceStub.java
index 2e8dc9f..1993573 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/GetBridiIdBySelbriAndSumtiIdsServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/GetBridiIdBySelbriAndSumtiIdsServiceStub.java
@@ -5,9 +5,9 @@
import java.util.stream.Stream;
-import io.github.magwas.inez.parse.BridiFieldTestData;
+import io.github.magwas.inez.parse.IdTestData;
-public class GetBridiIdBySelbriAndSumtiIdsServiceStub implements BridiFieldTestData {
+public class GetBridiIdBySelbriAndSumtiIdsServiceStub implements IdTestData {
public static GetBridiIdBySelbriAndSumtiIdsService stub() {
GetBridiIdBySelbriAndSumtiIdsService mock = mock(GetBridiIdBySelbriAndSumtiIdsService.class);
when(mock.apply(IS_A_ID, THING_ID, 1)).thenAnswer((args) -> Stream.of(TAUTOLOGY_ID, THING_IS_A_SUMTI_ID));
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/NotifyStoreChangeServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/NotifyStoreChangeServiceStub.java
index 18bdc2a..4218ea2 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/NotifyStoreChangeServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/NotifyStoreChangeServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class NotifyStoreChangeServiceStub {
- public static NotifyStoreChangeService stub() {
- return mock(NotifyStoreChangeService.class);
- }
-}
+@IndirectlyTested
+public class NotifyStoreChangeServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/RemoveReferencesServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/RemoveReferencesServiceStub.java
index e1f8866..9df413f 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/RemoveReferencesServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/RemoveReferencesServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class RemoveReferencesServiceStub {
- public static RemoveReferencesService stub() {
- return mock(RemoveReferencesService.class);
- }
-}
+@IndirectlyTested
+public class RemoveReferencesServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/SaveBridiServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/SaveBridiServiceStub.java
index acd8b3f..e018b3d 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/SaveBridiServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/SaveBridiServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class SaveBridiServiceStub {
- static SaveBridiService stub() {
- return mock(SaveBridiService.class);
- }
-}
+@IndirectlyTested
+public class SaveBridiServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/BridiReferenceTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/BridiReferenceTestData.java
deleted file mode 100644
index 651e96a..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/BridiReferenceTestData.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package io.github.magwas.inez.storage.model;
-
-import java.util.List;
-
-import io.github.magwas.inez.parse.BridiFieldTestData;
-
-public interface BridiReferenceTestData extends BridiFieldTestData {
-
- String ID = "id:";
- BridiReference TAUTOLOGY_REFERENCE_0 = new BridiReference(TAUTOLOGY_ID + 0, TAUTOLOGY_ID, IS_A_ID, 0, IS_A_ID);
- BridiReference TAUTOLOGY_REFERENCE_1 = new BridiReference(TAUTOLOGY_ID + 1, TAUTOLOGY_ID, IS_A_ID, 1, THING_ID);
- BridiReference TAUTOLOGY_REFERENCE_2 = new BridiReference(TAUTOLOGY_ID + 2, TAUTOLOGY_ID, IS_A_ID, 2, THING_ID);
- BridiReference SUMTI_IS_A_THING_REFERENCE_0 =
- new BridiReference(ID + SUMTI_IS_A_THING_ID + 0, SUMTI_IS_A_THING_ID, IS_A_ID, 0, IS_A_ID);
- BridiReference SUMTI_IS_A_THING_REFERENCE_1 =
- new BridiReference(ID + SUMTI_IS_A_THING_ID + 1, SUMTI_IS_A_THING_ID, IS_A_ID, 1, SUMTI_ID);
- BridiReference SUMTI_IS_A_THING_REFERENCE_2 =
- new BridiReference(ID + SUMTI_IS_A_THING_ID + 2, SUMTI_IS_A_THING_ID, IS_A_ID, 2, THING_ID);
- List SUMTI_IS_A_THING_REFERENCELIST =
- List.of(SUMTI_IS_A_THING_REFERENCE_0, SUMTI_IS_A_THING_REFERENCE_1, SUMTI_IS_A_THING_REFERENCE_2);
- BridiReference SUMTI_IS_A_THING_IS_A_THING_REFERENCE_0 =
- new BridiReference(SUMTI_IS_A_THING_IS_A_THING_ID + 0, SUMTI_IS_A_THING_IS_A_THING_ID, IS_A_ID, 0, IS_A_ID);
- BridiReference SUMTI_IS_A_THING_IS_A_THING_REFERENCE_1 = new BridiReference(
- SUMTI_IS_A_THING_IS_A_THING_ID + 1, SUMTI_IS_A_THING_IS_A_THING_ID, IS_A_ID, 1, SUMTI_ID);
- BridiReference SUMTI_IS_A_THING_IS_A_THING_REFERENCE_2 = new BridiReference(
- SUMTI_IS_A_THING_IS_A_THING_ID + 2, SUMTI_IS_A_THING_IS_A_THING_ID, IS_A_ID, 2, THING_ID);
- BridiReference TAUTOLOGY_IS_A_THING_REFERENCE_0 =
- new BridiReference(TAUTOLOGY_IS_A_THING_ID + 1, TAUTOLOGY_IS_A_THING_ID, IS_A_ID, 1, IS_A_ID);
- BridiReference TAUTOLOGY_IS_A_THING_REFERENCE_1 =
- new BridiReference(TAUTOLOGY_IS_A_THING_ID + 1, TAUTOLOGY_IS_A_THING_ID, IS_A_ID, 1, THING_ID);
- BridiReference TAUTOLOGY_IS_A_THING_REFERENCE_2 =
- new BridiReference(TAUTOLOGY_IS_A_THING_ID + 2, TAUTOLOGY_IS_A_THING_ID, IS_A_ID, 2, THING_ID);
- BridiReference THING_IS_A_SUMTI_REFERENCE_0 =
- new BridiReference(THING_IS_A_SUMTI_ID + 0, THING_IS_A_SUMTI_ID, IS_A_ID, 0, IS_A_ID);
- BridiReference THING_IS_A_SUMTI_REFERENCE_1 =
- new BridiReference(THING_IS_A_SUMTI_ID + 1, THING_IS_A_SUMTI_ID, IS_A_ID, 1, THING_ID);
- BridiReference THING_IS_A_SUMTI_REFERENCE_2 =
- new BridiReference(THING_IS_A_SUMTI_ID + 2, THING_IS_A_SUMTI_ID, IS_A_ID, 2, SUMTI_ID);
-
- BridiReference STUFF_COULDBE_THING_REFERENCE_2 =
- new BridiReference(STUFF_ID + 2, COULDBE_ID, COULDBE_ID, 2, THING_ID);
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/SumtiTestData.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/SumtiTestData.java
deleted file mode 100644
index 7ae7b0d..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/model/SumtiTestData.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.github.magwas.inez.storage.model;
-
-import io.github.magwas.inez.parse.BridiFieldTestData;
-
-public interface SumtiTestData extends BridiFieldTestData {
-
- Sumti THING_SUMTI = new Sumti(THING_ID, THING_REPR);
- Sumti SUMTI_IS_A_THING_SUMTI = new Sumti(SUMTI_IS_A_THING_ID, SUMTI_IS_A_THING_REPR);
- Sumti SUMTI_IS_A_THING_CHANGED_SUMTI = new Sumti(SUMTI_IS_A_THING_ID, SUMTI_IS_A_THING_CHANGED_REPR);
- Sumti GO1_SUMTI = new Sumti(GO1_ID, GO_REPRESENTATION);
- Sumti GO2_SUMTI = new Sumti(GO2_ID, GO_REPRESENTATION);
-}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiReferenceRepositoryStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiReferenceRepositoryStub.java
index 3df85c6..266b36d 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiReferenceRepositoryStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiReferenceRepositoryStub.java
@@ -14,9 +14,7 @@ public static BridiReferenceRepository stub() {
when(mock.findAllByBridiId(SUMTI_IS_A_THING_ID))
.thenAnswer(params -> Set.of(
- SUMTI_IS_A_THING_IS_A_THING_REFERENCE_0,
- SUMTI_IS_A_THING_IS_A_THING_REFERENCE_1,
- SUMTI_IS_A_THING_IS_A_THING_REFERENCE_2));
+ SUMTI_IS_A_THING_REFERENCE_0, SUMTI_IS_A_THING_REFERENCE_1, SUMTI_IS_A_THING_REFERENCE_2));
when(mock.findAllBySelbriIdAndSumtiIdAndPosition(IS_A_ID, THING_ID, 2))
.thenAnswer(params -> Set.of(
TAUTOLOGY_REFERENCE_2,
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiStoreHistoryServiceStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiStoreHistoryServiceStub.java
index 0fc188e..1f84840 100644
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiStoreHistoryServiceStub.java
+++ b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/BridiStoreHistoryServiceStub.java
@@ -1,9 +1,6 @@
package io.github.magwas.inez.storage.repository;
-import static org.mockito.Mockito.mock;
+import io.github.magwas.testing.IndirectlyTested;
-public class BridiStoreHistoryServiceStub {
- public static BridiStoreHistoryRepository stub() {
- return mock(BridiStoreHistoryRepository.class);
- }
-}
+@IndirectlyTested
+public class BridiStoreHistoryServiceStub {}
diff --git a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/SumtiRepositoryStub.java b/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/SumtiRepositoryStub.java
deleted file mode 100644
index 45b5fa5..0000000
--- a/inez.model.tests/src/main/java/io/github/magwas/inez/storage/repository/SumtiRepositoryStub.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package io.github.magwas.inez.storage.repository;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.Optional;
-import java.util.Set;
-
-import io.github.magwas.inez.storage.model.SumtiTestData;
-
-public class SumtiRepositoryStub implements SumtiTestData {
- public static SumtiRepository stub() {
- SumtiRepository mock = mock(SumtiRepository.class);
- when(mock.findById(THING_ID)).thenReturn(Optional.of(THING_SUMTI));
- when(mock.findById(SUMTI_IS_A_THING_ID)).thenReturn(Optional.of(SUMTI_IS_A_THING_SUMTI));
- when(mock.findById(NOT_SAVED_ID)).thenReturn(Optional.empty());
-
- when(mock.findAllByRepresentation(GO_REPRESENTATION)).thenReturn(Set.of(GO1_SUMTI, GO2_SUMTI));
- return mock;
- }
-}
diff --git a/inez.model.tests/src/main/resources/bridies b/inez.model.tests/src/main/resources/bridies
new file mode 100644
index 0000000..380949a
--- /dev/null
+++ b/inez.model.tests/src/main/resources/bridies
@@ -0,0 +1,22 @@
+ALICE,IdUtil.createID(ALICE_REPR),ALICE_REPR,List.of()
+GO,GO_ID,GO_REPR,List.of()
+GO2,GO2_ID,GO_REPR,List.of()
+SUMTI_IS_A_THING_IS_A_THING,SUMTI_IS_A_THING_IS_A_THING_ID,SUMTI_IS_A_THING_IS_A_THING_NOREFERENCE_REPR,SUMTI_IS_A_THING_IS_A_THING_REFERENCES
+TAUTOLOGY_IS_A_THING,TAUTOLOGY_IS_A_THING_ID,TAUTOLOGY_IS_A_THING_REPR,SUMTI_IS_A_THING_IS_A_THING_REFERENCES
+THING,THING_ID,THING_REPR,List.of()
+THING_CHANGED,THING_ID,"thung",List.of()
+THING_GENERATED,IdUtil.createID(THING_REPR),THING_REPR,List.of()
+SUMTI,SUMTI_ID,SUMTI_REPR,List.of()
+NONEXISTENT,NONEXISTENT_ID,NONEXISTENT_REPR,List.of()
+BRIDI,BRIDI_ID,BRIDI_REPR,List.of()
+IS_A,IS_A_ID,IS_A_REPR,List.of()
+IS_A_NONSAVED,IdUtil.createID(IS_A_REPR),IS_A_REPR,List.of()
+ANY,ParserConstants.QUERY_BRIDI_ID,ParserConstants.QUERY_BRIDI_ID,List.of()
+SUMTI_IS_A_THING,SUMTI_IS_A_THING_ID,SUMTI_IS_A_THING_REPR,SUMTI_IS_A_THING_REFERENCES
+SUMTI_IS_A_THING_GENERATED,SUMTI_IS_A_THING_ID,SUMTI_IS_A_THING_REPR,SUMTI_IS_A_THING_GENERATED_REFERENCES
+SUMTI_IS_A_THING_CHANGED,SUMTI_IS_A_THING_ID,SUMTI_IS_A_THING_CHANGED_REPR,SUMTI_IS_A_THING_CHANGED_REFERENCES
+TAUTOLOGY,TAUTOLOGY_ID,TAUTOLOGY_REPR,SUMTI_IS_A_THING_CHANGED_REFERENCES
+THING_IS_A_SUMTI,THING_IS_A_SUMTI_ID,TAUTOLOGY_REPR,THING_IS_A_SUMTI_REFERENCES
+GOD,GOD_ID,GOD_REPR,List.of()
+HUMAN,HUMAN_ID,HUMAN_REPR,List.of()
+MY_MODEL,MY_MODEL_ID,MY_MODEL_REPR,List.of()
diff --git a/inez.model.tests/src/main/resources/bridireferences b/inez.model.tests/src/main/resources/bridireferences
new file mode 100644
index 0000000..797aad5
--- /dev/null
+++ b/inez.model.tests/src/main/resources/bridireferences
@@ -0,0 +1,6 @@
+TAUTOLOGY,IS_A,THING,THING
+SUMTI_IS_A_THING,IS_A,SUMTI,THING
+SUMTI_IS_A_THING_IS_A_THING,IS_A,SUMTI_IS_A_THING,THING
+TAUTOLOGY_IS_A_THING,IS_A,TAUTOLOGY,THING
+THING_IS_A_SUMTI,IS_A,THING,SUMTI
+STUFF_COULDBE_THING,COULDBE,STUFF,THING
diff --git a/inez.model.tests/src/main/resources/byrepresentation b/inez.model.tests/src/main/resources/byrepresentation
new file mode 100644
index 0000000..acc71fe
--- /dev/null
+++ b/inez.model.tests/src/main/resources/byrepresentation
@@ -0,0 +1,5 @@
+THING_REPR,THING
+GO_REPR,GO, GO2
+SUMTI_IS_A_THING_REPR,SUMTI_IS_A_THING
+ParserConstants.QUERY_BRIDI_ID,ANY
+IS_A_REPR,IS_A
diff --git a/inez.model.tests/src/main/resources/relatives b/inez.model.tests/src/main/resources/relatives
new file mode 100644
index 0000000..293d94e
--- /dev/null
+++ b/inez.model.tests/src/main/resources/relatives
@@ -0,0 +1,4 @@
+HUMAN,IS_A,1,2,THING
+ROOT,IS_A,1,2,CONTAINER
+MY_MODEL,IS_A,1,2,FOLDER
+FOLDER,IS_A,1,2,CONTAINER
diff --git a/inez.model.tests/src/main/resources/sumties b/inez.model.tests/src/main/resources/sumties
new file mode 100644
index 0000000..a7513b5
--- /dev/null
+++ b/inez.model.tests/src/main/resources/sumties
@@ -0,0 +1,5 @@
+THING,THING_ID,THING_REPR
+SUMTI_IS_A_THING,SUMTI_IS_A_THING_ID,SUMTI_IS_A_THING_REPR
+SUMTI_IS_A_THING_CHANGED,SUMTI_IS_A_THING_ID,SUMTI_IS_A_THING_CHANGED_REPR
+GO,GO_ID,GO_REPR
+GO2,GO2_ID,GO_REPR
diff --git a/inez.model/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputService.java b/inez.model/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputService.java
index 2289aa9..aafecfd 100644
--- a/inez.model/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputService.java
+++ b/inez.model/src/main/java/io/github/magwas/inez/query/CreateBridisFromParserOutputService.java
@@ -33,7 +33,7 @@ public Stream apply(final ParserOutput parserOutput) {
private Stream apply(final String top, final Map> refMap) {
debug("apply(", top, refMap);
if (!refMap.containsKey(top)) {
- Bridi bridi = new Bridi(getIdOrRepr(top), top, null);
+ Bridi bridi = new Bridi(getIdOrRepr(top), top, List.of());
debug("bridi->", bridi);
return Stream.of(bridi);
}
diff --git a/inez.parser.tests/.classpath b/inez.parser.tests/.classpath
index 030981d..b0fcce7 100644
--- a/inez.parser.tests/.classpath
+++ b/inez.parser.tests/.classpath
@@ -3,6 +3,7 @@
+
diff --git a/inez.parser.tests/META-INF/MANIFEST.MF b/inez.parser.tests/META-INF/MANIFEST.MF
index 56df782..e7b48f8 100644
--- a/inez.parser.tests/META-INF/MANIFEST.MF
+++ b/inez.parser.tests/META-INF/MANIFEST.MF
@@ -18,6 +18,11 @@ Require-Bundle: wrapped.io.github.magwas.konveyor-base-testing;bundle-version="0
junit-jupiter-api;bundle-version="5.11.4",
junit-platform-commons;bundle-version="1.11.4",
wrapped.org.springframework.spring-aop;bundle-version="6.2.8",
- wrapped.org.springframework.spring-expression;bundle-version="6.2.8"
+ wrapped.org.springframework.spring-expression;bundle-version="6.2.8",
+ wrapped.org.springframework.spring-context;bundle-version="6.2.8",
+ wrapped.org.springframework.boot.spring-boot-autoconfigure;bundle-version="3.5.3",
+ wrapped.org.springframework.spring-beans;bundle-version="6.2.8",
+ wrapped.org.springframework.spring-core;bundle-version="6.2.8",
+ wrapped.org.springframework.data.spring-data-keyvalue;bundle-version="3.5.1"
Automatic-Module-Name: io.github.magwas.inez.parser.tests
Bundle-RequiredExecutionEnvironment: JavaSE-21
diff --git a/inez.parser.tests/pom.xml b/inez.parser.tests/pom.xml
index bfc1985..1fc1e1f 100644
--- a/inez.parser.tests/pom.xml
+++ b/inez.parser.tests/pom.xml
@@ -46,6 +46,7 @@
org.eclipse.tycho
tycho-surefire-plugin
+ ${version.tycho}
true
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/IdTestDataGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/IdTestDataGenerator.java
new file mode 100644
index 0000000..08aa0c1
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/IdTestDataGenerator.java
@@ -0,0 +1,30 @@
+package io.github.magwas.inez.parse;
+
+import java.text.MessageFormat;
+import java.util.List;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class IdTestDataGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ List definedIdlist = GeneratorUtil.linesOf(IDS)
+ .map(s -> s.split(",")[0]).toList();
+ Stream generatedIds = GeneratorUtil.linesOf(REPRESENTATIONS)
+ .map(s -> s.split(",")[0]).filter(x -> !definedIdlist.contains(x));
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate("",
+ "RepresentationTestData");
+ GeneratorUtil.mapToCode(generatedIds, line -> {
+ String[] parts = line.split(",", 2);
+ return MessageFormat.format("""
+ String {0}_ID = IdUtil.createID({0}_REPR);
+ """, parts[0].trim());
+ }, builder);
+ GeneratorUtil.mapToCode(IDS, GeneratorUtil.stringConstant("ID"), builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/InputTestDataGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/InputTestDataGenerator.java
new file mode 100644
index 0000000..ef89190
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/InputTestDataGenerator.java
@@ -0,0 +1,17 @@
+package io.github.magwas.inez.parse;
+
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class InputTestDataGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate("");
+ GeneratorUtil.mapToCode(INPUTS, GeneratorUtil.stringConstant("INPUT"),
+ builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParseTextServiceStubGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParseTextServiceStubGenerator.java
new file mode 100644
index 0000000..762049f
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParseTextServiceStubGenerator.java
@@ -0,0 +1,25 @@
+package io.github.magwas.inez.parse;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class ParseTextServiceStubGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.stubBoilerPlate("""
+ import java.util.stream.Stream;
+ """, "ParserOutputTestData");
+ GeneratorUtil.linesOf(PARSE_TEXT_STUB_DATA).map(line -> {
+ String[] splat = line.split(",");
+ return MessageFormat.format("""
+ when(mock.apply({0})).thenReturn(Stream.of({1}));
+ """, splat[0], splat[1]);
+ }).forEach(builder::append);
+ return GeneratorUtil.stubTail(builder);
+ }
+
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParserOutputTestDataGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParserOutputTestDataGenerator.java
new file mode 100644
index 0000000..47c443f
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ParserOutputTestDataGenerator.java
@@ -0,0 +1,31 @@
+package io.github.magwas.inez.parse;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class ParserOutputTestDataGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate("""
+ import java.util.Map;
+ """, "InputTestData", "ReferenceTestData");
+ GeneratorUtil.linesOf(OUTPUTS).map(line -> {
+ String[] parts = line.split(",", 3);
+ String name = parts[0];
+ String top = parts[1];
+ String map = "";
+ if (parts.length == 3)
+ map = parts[1] + "," + parts[2];
+
+ return MessageFormat.format(
+ "\tParserOutput OUTPUT_{0} = new ParserOutput({1},Map.of({2}));\n",
+ name, top, map);
+ }).forEach(builder::append);
+ return GeneratorUtil.testDataTail(builder);
+ }
+
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ReferenceTestDataGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ReferenceTestDataGenerator.java
new file mode 100644
index 0000000..97f9060
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/ReferenceTestDataGenerator.java
@@ -0,0 +1,24 @@
+package io.github.magwas.inez.parse;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class ReferenceTestDataGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate("""
+ import java.util.List;
+ """, "IdTestData", "InputTestData");
+ GeneratorUtil.mapToCode(REFERENCES, line -> {
+ String[] parts = line.split(",", 2);
+ return MessageFormat.format("""
+ List {0}_REFERENCES = List.of({1});
+ """, parts[0].trim(), parts[1]);
+ }, builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/RepresentationTestDataGenerator.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/RepresentationTestDataGenerator.java
new file mode 100644
index 0000000..656cd2c
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/RepresentationTestDataGenerator.java
@@ -0,0 +1,25 @@
+package io.github.magwas.inez.parse;
+
+import java.text.MessageFormat;
+import java.util.function.Supplier;
+
+import io.github.magwas.runtime.GeneratorUtil;
+
+public class RepresentationTestDataGenerator
+ implements Supplier, TestDataGeneratorConstants {
+
+ @Override
+ public StringBuilder get() {
+ StringBuilder builder = GeneratorUtil.testDataBoilerPlate("");
+ GeneratorUtil.mapToCode(REPRESENTATIONS,
+ GeneratorUtil.stringConstant("REPR"), builder);
+ GeneratorUtil.mapToCode(IDREFERENCES, line -> {
+ String[] parts = line.split(",", 2);
+ return MessageFormat.format("""
+ String {0}_REFERENCE = "@{0}";
+ """, parts[0].trim());
+ }, builder);
+ return GeneratorUtil.testDataTail(builder);
+ }
+
+}
diff --git a/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/TestDataGeneratorConstants.java b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/TestDataGeneratorConstants.java
new file mode 100644
index 0000000..d4194e6
--- /dev/null
+++ b/inez.parser.tests/src/generators-java/io/github/magwas/inez/parse/TestDataGeneratorConstants.java
@@ -0,0 +1,15 @@
+package io.github.magwas.inez.parse;
+
+import io.github.magwas.testing.TestUtil;
+
+public interface TestDataGeneratorConstants {
+ String REPRESENTATIONS = TestUtil.loadResourceAsString("representations");
+ String IDS = TestUtil.loadResourceAsString("ids");
+ String IDREFERENCES = TestUtil.loadResourceAsString("idreferences");
+ String INPUTS = TestUtil.loadResourceAsString("inputs");
+ String REFERENCES = TestUtil.loadResourceAsString("references");
+ String OUTPUTS = TestUtil.loadResourceAsString("outputs");
+ String PARSE_TEXT_STUB_DATA = TestUtil
+ .loadResourceAsString("parse_text_stubdata");
+
+}
diff --git a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/BridiFieldTestData.java b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/BridiFieldTestData.java
deleted file mode 100644
index 7383de8..0000000
--- a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/BridiFieldTestData.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package io.github.magwas.inez.parse;
-
-import java.util.List;
-
-public interface BridiFieldTestData {
- String ALICE_REPR = "alice";
- String ALICE_ID = IdUtil.createID(ALICE_REPR);
- String THING_REPR = "THING";
- String THING_ID = "THING";
- String THING_REFERENCE = "@" + THING_ID;
- String SUMTI_REPR = "sumti";
- String BRIDI_REPR = "bridi";
- String IS_A_REPR = "{0} is a {1}";
- String SUMTI_IS_A_THING_REPR = "{sumti} is a {THING}";
- String SUMTI_IS_A_THING_CHANGED_REPR = SUMTI_IS_A_THING_REPR + " changed";
- String THING_IS_A_SUMTI_REPR = "{THING} is a {sumti}";
- String TAUTOLOGY_REPR = "the most basic tautology";
- String TAUTOLOGY_GENERATED_REPR = "{THING} is a {THING}";
- String SUMTI_IS_A_THING_IS_A_THING_REPR = "{{sumti} is a {THING}} is a {@THING}";
- String SUMTI_IS_A_THING_IS_A_THING_REPR_NOREFERENCE = "{{sumti} is a {THING}} is a {THING}";
- String TAUTOLOGY_IS_A_THING_REPR = "{{THING} is a {THING}} is a {THING}";
- String STUFF_ID = "stuff";
- String COULDBE_ID = "ID:could be";
-
- String GO_REPRESENTATION = "go";
- String GO1_ID = "go1";
- String GO2_ID = "go2";
- String GO1_REFERENCE = "@go1";
- String NONEXISTENT_REFERENCE = "@nonexistent";
- String NONEXISTENT_REPR = "nonexistent";
- String INPUT_BAD = "{bridi is a {THING}";
- String INPUT_FROM_UNKNOWN_PARSER = "INPUT_FROM_UNKNOWN_PARSER";
- String QUERY_NONEXISTING = "nonexisting";
- String QUERY_STRING_SIMPLE = "{$?} is a {THING}";
- String QUERY_STRING_ALL_ANY = "{$?} is a {$?}";
- String QUERY_STRING_NONMATCHING = "{$?} is a {god}";
- String RECURSIVE_QUERY = "{{$?} is a {THING}} is a {THING}";
-
- String DESCRIPTION_SUMTI_IS_A_THING_STRING = "sumti is a THING";
- String GOD_REPR = "god";
- String TWO_SUMTI_BRIDI_REPR = "{0} {1}";
- String CECILE_LOOKS_AT_BANANA = "{cecile} {{looks at} {banana}}";
- String CECILE_EATS_BANANA = "{cecile} {{eats} {banana}}";
- String BOB_EATS_CHIPS = "{bob} {{eats} {chips}}";
- String BOB_EATS_BANANA = "{bob} {{eats} {banana}}";
- String ALICE_EATS_CHIPS = "{alice} {{eats} {chips}}";
- String ALICE_EATS_BANANA = "{alice} {{eats} {banana}}";
-
- String TEST_TEXT = SUMTI_IS_A_THING_IS_A_THING_REPR_NOREFERENCE + "\n"
- + TAUTOLOGY_IS_A_THING_REPR + "\n" + ALICE_EATS_BANANA + "\n"
- + ALICE_EATS_CHIPS + "\n" + BOB_EATS_BANANA + "\n" + BOB_EATS_CHIPS + "\n"
- + CECILE_EATS_BANANA + "\n" + CECILE_LOOKS_AT_BANANA + "\n"
- + SUMTI_IS_A_THING_REPR + "\n" + TAUTOLOGY_GENERATED_REPR;
-
- String SUMTI_ID = IdUtil.createID("sumti");
- String BRIDI_ID = IdUtil.createID("bridi");
- String IS_A_ID = "IS_A";
- String SUMTI_IS_A_THING_ID = IdUtil.createID("{sumti} is a {THING}");
- String SUMTI_IS_A_THING_IS_A_THING_ID = IdUtil.createID("{{sumti} is a {THING}} is a {THING}");
- String TAUTOLOGY_IS_A_THING_ID = IdUtil.createID("{{THING} is a {THING}} is a {THING}");
- String THING_IS_A_SUMTI_ID = "not tautology";
- String TAUTOLOGY_ID = "tautology";
-
- String GOD_ID = IdUtil.createID("god");
- String NOT_SAVED_ID = IdUtil.createID(SUMTI_REPR);
- String NONEXISTENT_ID = IdUtil.createID(NONEXISTENT_REPR);
- List SUMTI_IS_A_THING_IS_A_THING_REFERENCES = List.of(IS_A_ID, SUMTI_IS_A_THING_ID, THING_ID);
- List TAUTOLOGY_IS_A_THING_REFERENCES = List.of(IS_A_ID, TAUTOLOGY_ID, THING_REPR);
- List BAD_BRIDI_REFERENCES = List.of(IS_A_REPR, SUMTI_IS_A_THING_ID, NONEXISTENT_REPR);
- List SUMTI_IS_A_THING_CHANGED_REFERENCES = List.of(IS_A_ID, THING_ID, THING_ID);
- List SUMTI_IS_A_THING_REFERENCES = List.of(IS_A_ID, SUMTI_ID, THING_ID);
- List SUMTI_IS_A_THING_GENERATED_REFERENCES =
- List.of(IdUtil.createID(IS_A_REPR), SUMTI_ID, IdUtil.createID(THING_REPR));
- List THING_IS_A_SUMTI_REFERENCES = List.of(IS_A_ID, THING_ID, SUMTI_ID);
- String INPUT_WITH_LITERAL = "{My folder} contains {[{0} is a {1}]}";
- List INPUT_WITH_LITERAL_REFS = List.of("{0} contains {1}", "My folder", "{0} is a {1}");
-}
diff --git a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/CreateParserFromTokensServiceStub.java b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/CreateParserFromTokensServiceStub.java
index e2eeea7..d9da6a6 100644
--- a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/CreateParserFromTokensServiceStub.java
+++ b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/CreateParserFromTokensServiceStub.java
@@ -24,7 +24,7 @@ public static CreateParserFromTokensService stub() {
para.children = List.of(bridiContext);
when(bridiParsermock.paragraph()).thenReturn(para);
when(mock.apply(any())).thenCallRealMethod();
- when(mock.apply(INPUT_FROM_UNKNOWN_PARSER)).thenReturn(bridiParsermock);
+ when(mock.apply(FROM_UNKNOWN_PARSER_INPUT)).thenReturn(bridiParsermock);
return mock;
}
}
diff --git a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextServiceStub.java b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextServiceStub.java
deleted file mode 100644
index 6951ac4..0000000
--- a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextServiceStub.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.magwas.inez.parse;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.stream.Stream;
-
-class ParseTextServiceStub implements ParserOutputTestData {
- public static ParseTextService stub() {
- ParseTextService mock = mock(ParseTextService.class);
- when(mock.apply(QUERY_NONEXISTING)).thenReturn(Stream.of(OUTPUT_NONEXISTING));
- when(mock.apply(THING_REPR)).thenReturn(Stream.of(OUTPUT_THING));
- when(mock.apply(GO_REPRESENTATION)).thenReturn(Stream.of(OUTPUT_GO));
- when(mock.apply(SUMTI_IS_A_THING_REPR)).thenReturn(Stream.of(OUTPUT_SUMTI_IS_A_THING));
- when(mock.apply(GO1_REFERENCE)).thenReturn(Stream.of(OUTPUT_GO1));
- when(mock.apply(NONEXISTENT_REFERENCE)).thenReturn(Stream.of(OUTPUT_NONEXISTENT_REFERENCE));
- when(mock.apply(TAUTOLOGY_GENERATED_REPR)).thenReturn(Stream.of(OUTPUT_TAUTOLOGY));
- when(mock.apply(ParserConstants.QUERY_BRIDI_ID)).thenReturn(Stream.of(OUTPUT_ANY));
-
- when(mock.apply(QUERY_STRING_SIMPLE)).thenReturn(Stream.of(OUTPUT_SIMPLE));
- when(mock.apply(QUERY_STRING_ALL_ANY)).thenReturn(Stream.of(OUTPUT_ALL_ANY));
- when(mock.apply(QUERY_STRING_NONMATCHING)).thenReturn(Stream.of(OUTPUT_NONMATCHING));
- when(mock.apply(RECURSIVE_QUERY)).thenReturn(Stream.of(OUTPUT_RECURSIVE));
- return mock;
- }
-}
diff --git a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextTest.java b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextTest.java
index 09fa5e8..2562595 100644
--- a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextTest.java
+++ b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParseTextTest.java
@@ -8,11 +8,13 @@
import org.antlr.v4.runtime.misc.ParseCancellationException;
import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import io.github.magwas.testing.TestBase;
+@Tag("unit")
class ParseTextTest extends TestBase implements ParserOutputTestData {
@InjectMocks
@@ -54,30 +56,30 @@ void test4() {
void test5() {
assertThrows(
InternalError.class,
- () -> parseText.apply(INPUT_FROM_UNKNOWN_PARSER).toList());
+ () -> parseText.apply(FROM_UNKNOWN_PARSER_INPUT).toList());
}
@Test
@DisplayName("if the text cannot be unambigously parsed, a ParseCancellationException is thrown")
void test1() {
- assertThrows(ParseCancellationException.class, () -> parseText.apply(INPUT_BAD));
+ assertThrows(ParseCancellationException.class, () -> parseText.apply(BAD_INPUT));
}
@Test
@DisplayName("literal is parsed correctly")
void test6() {
assertEquals(
- OUTPOUT_WITH_LITERAL,
- parseText.apply(INPUT_WITH_LITERAL).toList().get(0));
+ OUTPUT_WITH_LITERAL,
+ parseText.apply(WITH_LITERAL_INPUT).toList().get(0));
}
@Test
@DisplayName("multiline is working")
void test7() {
assertEquals(
- List.of(OUTPOUT_WITH_LITERAL, OUTPUT_TAUTOLOGY),
+ List.of(OUTPUT_WITH_LITERAL, OUTPUT_TAUTOLOGY),
parseText
- .apply(INPUT_WITH_LITERAL + "\n" + TAUTOLOGY_GENERATED_REPR)
+ .apply(WITH_LITERAL_INPUT + "\n" + TAUTOLOGY_GENERATED_REPR)
.toList());
}
}
diff --git a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParserOutputTestData.java b/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParserOutputTestData.java
deleted file mode 100644
index c39d4da..0000000
--- a/inez.parser.tests/src/main/java/io/github/magwas/inez/parse/ParserOutputTestData.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package io.github.magwas.inez.parse;
-
-import java.util.List;
-import java.util.Map;
-
-public interface ParserOutputTestData extends BridiFieldTestData {
-
- ParserOutput OUTPOUT_WITH_LITERAL =
- new ParserOutput(INPUT_WITH_LITERAL, Map.of(INPUT_WITH_LITERAL, INPUT_WITH_LITERAL_REFS));
-
- ParserOutput OUTPUT_NONEXISTING = new ParserOutput(QUERY_NONEXISTING, Map.of());
- ParserOutput OUTPUT_THING = new ParserOutput(THING_REPR, Map.of());
- ParserOutput OUTPUT_GO = new ParserOutput(GO_REPRESENTATION, Map.of());
- ParserOutput OUTPUT_GO1 = new ParserOutput(GO1_REFERENCE, Map.of());
- ParserOutput OUTPUT_NONEXISTENT_REFERENCE = new ParserOutput(NONEXISTENT_REFERENCE, Map.of());
- ParserOutput OUTPUT_ANY = new ParserOutput(ParserConstants.QUERY_BRIDI_ID, Map.of());
-
- ParserOutput OUTPUT_SUMTI_IS_A_THING = new ParserOutput(
- SUMTI_IS_A_THING_REPR, Map.of(SUMTI_IS_A_THING_REPR, List.of(IS_A_REPR, SUMTI_REPR, THING_REPR)));
- ParserOutput OUTPUT_TAUTOLOGY = new ParserOutput(
- TAUTOLOGY_GENERATED_REPR, Map.of(TAUTOLOGY_GENERATED_REPR, List.of(IS_A_REPR, THING_REPR, THING_REPR)));
- ParserOutput OUTPUT_SIMPLE = new ParserOutput(
- QUERY_STRING_SIMPLE,
- Map.of(QUERY_STRING_SIMPLE, List.of(IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, THING_REPR)));
- ParserOutput OUTPUT_ALL_ANY = new ParserOutput(
- QUERY_STRING_ALL_ANY,
- Map.of(
- QUERY_STRING_ALL_ANY,
- List.of(IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, ParserConstants.QUERY_BRIDI_ID)));
- ParserOutput OUTPUT_NONMATCHING = new ParserOutput(
- QUERY_STRING_NONMATCHING,
- Map.of(QUERY_STRING_NONMATCHING, List.of(IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, GOD_REPR)));
- ParserOutput OUTPUT_RECURSIVE = new ParserOutput(
- RECURSIVE_QUERY,
- Map.of(
- RECURSIVE_QUERY,
- List.of(IS_A_REPR, QUERY_STRING_SIMPLE, THING_REPR),
- TAUTOLOGY_GENERATED_REPR,
- List.of(IS_A_REPR, THING_REPR, THING_REPR),
- QUERY_STRING_SIMPLE,
- List.of(IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, THING_REPR)));
-}
diff --git a/inez.parser.tests/src/main/resources/idreferences b/inez.parser.tests/src/main/resources/idreferences
new file mode 100644
index 0000000..70c0167
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/idreferences
@@ -0,0 +1,3 @@
+NONEXISTENT
+GO1
+THING
diff --git a/inez.parser.tests/src/main/resources/ids b/inez.parser.tests/src/main/resources/ids
new file mode 100644
index 0000000..6da9c53
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/ids
@@ -0,0 +1,12 @@
+THING,THING
+IS_A,IS_A
+STUFF,stuff
+GO,GO1
+GO2,go2
+THING_IS_A_SUMTI,not tautology
+TAUTOLOGY,tautology
+CONTAINS,CONTAINS
+ROOT,ROOT
+CONTAINER,CONTAINER
+STUFF_COULDBE_THING,STUFF_COULDBE_THING
+ANY,?
diff --git a/inez.parser.tests/src/main/resources/inputs b/inez.parser.tests/src/main/resources/inputs
new file mode 100644
index 0000000..b655fcc
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/inputs
@@ -0,0 +1,14 @@
+BAD,{bridi is a {THING}
+NONEXISTING,nonexisting
+SIMPLE,{$?} is a {THING}
+ALL_ANY,{$?} is a {$?}
+NONMATCHING,{$?} is a {god}
+QUERY,{{$?} is a {THING}} is a {THING}
+FROM_UNKNOWN_PARSER,INPUT_FROM_UNKNOWN_PARSER
+WITH_LITERAL,{My folder} contains {[{0} is a {1}]}
+RECURSIVE,{{$?} is a {THING}} is a {THING}
+DO_SAVE_OSGI_IS_A_BITCH,doSave {{osgi} is a {bitch}}
+ALICE_EATS_WHAT,{alice} {{eats} {$?}}
+CECILE_WHAT_BANANA,{cecile} {{$?} {banana}}
+WHO_EATS_BANANA,{$?} {{eats} {banana}}
+DO_SAVE_PUTTY,doSave {putty}
\ No newline at end of file
diff --git a/inez.parser.tests/src/main/resources/outputs b/inez.parser.tests/src/main/resources/outputs
new file mode 100644
index 0000000..773cb20
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/outputs
@@ -0,0 +1,13 @@
+WITH_LITERAL,WITH_LITERAL_INPUT,INPUT_WITH_LITERAL_REFERENCES
+NONEXISTING,NONEXISTENT_REFERENCE
+THING,THING_REPR
+GO,GO_REPR
+GO1,GO1_REFERENCE
+NONEXISTENT_REFERENCE,NONEXISTENT_REFERENCE
+ANY,ParserConstants.QUERY_BRIDI_ID
+SUMTI_IS_A_THING,SUMTI_IS_A_THING_REPR,SUMTI_IS_A_THING_REPR_REFERENCES
+TAUTOLOGY,TAUTOLOGY_GENERATED_REPR,TAUTOLOGY_REPR_REFERENCES
+SIMPLE,SIMPLE_INPUT,SIMPLE_INPUT_REPR_REFERENCES
+ALL_ANY,ALL_ANY_INPUT,ALL_ANY_INPUT_REPR_REFERENCES
+NONMATCHING,NONMATCHING_INPUT,NONMATCHING_INPUT_REFERENCES
+RECURSIVE,RECURSIVE_INPUT,RECURSIVE_INPUT_REFERENCES,TAUTOLOGY_GENERATED_REPR,TAUTOLOGY_REPR_REFERENCES,SIMPLE_INPUT,SIMPLE_INPUT_REPR_REFERENCES
diff --git a/inez.parser.tests/src/main/resources/parse_text_stubdata b/inez.parser.tests/src/main/resources/parse_text_stubdata
new file mode 100644
index 0000000..56aaaa9
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/parse_text_stubdata
@@ -0,0 +1,12 @@
+NONEXISTENT_REPR,OUTPUT_NONEXISTING
+THING_REPR,OUTPUT_THING
+GO_REPR,OUTPUT_GO
+SUMTI_IS_A_THING_REPR,OUTPUT_SUMTI_IS_A_THING
+GO1_REFERENCE,OUTPUT_GO1
+NONEXISTENT_REFERENCE,OUTPUT_NONEXISTENT_REFERENCE
+TAUTOLOGY_GENERATED_REPR,OUTPUT_TAUTOLOGY
+ParserConstants.QUERY_BRIDI_ID,OUTPUT_ANY
+SIMPLE_INPUT,OUTPUT_SIMPLE
+ALL_ANY_INPUT,OUTPUT_ALL_ANY
+NONMATCHING_INPUT,OUTPUT_NONMATCHING
+RECURSIVE_INPUT,OUTPUT_RECURSIVE
diff --git a/inez.parser.tests/src/main/resources/references b/inez.parser.tests/src/main/resources/references
new file mode 100644
index 0000000..dd05ab4
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/references
@@ -0,0 +1,15 @@
+SUMTI_IS_A_THING_IS_A_THING,IS_A_ID, SUMTI_IS_A_THING_ID, THING_ID
+SUMTI_IS_A_THING_GENERATED,IdUtil.createID(IS_A_REPR), SUMTI_ID, IdUtil.createID(THING_REPR)
+TAUTOLOGY_IS_A_THING,IS_A_ID, TAUTOLOGY_ID, THING_REPR
+TAUTOLOGY_REPR,IS_A_REPR, THING_REPR, THING_REPR
+BAD_BRIDI,IS_A_REPR, SUMTI_IS_A_THING_ID, NONEXISTENT_REPR
+SUMTI_IS_A_THING_CHANGED,IS_A_ID, THING_ID, THING_ID
+SUMTI_IS_A_THING,IS_A_ID, SUMTI_ID, THING_ID
+SUMTI_IS_A_THING_REPR,IS_A_REPR,SUMTI_REPR,THING_REPR
+THING_IS_A_SUMTI,IS_A_ID, THING_ID, SUMTI_ID
+INPUT_WITH_LITERAL,"{0} contains {1}", "My folder", "{0} is a {1}"
+CONTAINS_ELEMENT,CONTAINS_ID, MY_MODEL_ID,ALICE_ID
+SIMPLE_INPUT_REPR,IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, THING_REPR
+ALL_ANY_INPUT_REPR,IS_A_REPR, ParserConstants.QUERY_BRIDI_ID,ParserConstants.QUERY_BRIDI_ID
+NONMATCHING_INPUT,IS_A_REPR, ParserConstants.QUERY_BRIDI_ID, GOD_REPR
+RECURSIVE_INPUT,IS_A_REPR, SIMPLE_INPUT, THING_REPR
diff --git a/inez.parser.tests/src/main/resources/representations b/inez.parser.tests/src/main/resources/representations
new file mode 100644
index 0000000..4e7cfcc
--- /dev/null
+++ b/inez.parser.tests/src/main/resources/representations
@@ -0,0 +1,39 @@
+THING,THING
+IS_A,{0} is a {1}
+ALICE,alice
+SUMTI,sumti
+BRIDI,bridi
+SUMTI_IS_A_THING,{sumti} is a {THING}
+THING_IS_A_SUMTI,{THING} is a {sumti}
+TAUTOLOGY,the most basic tautology
+TAUTOLOGY_GENERATED,{THING} is a {THING}
+SUMTI_IS_A_THING_IS_A_THING,{{sumti} is a {THING}} is a {@THING}
+SUMTI_IS_A_THING_IS_A_THING_NOREFERENCE,{{sumti} is a {THING}} is a {THING}
+TAUTOLOGY_IS_A_THING,{{THING} is a {THING}} is a {THING}
+GOD,god
+TWO_SUMTI_BRIDI,{0} {1}
+GO,go
+NONEXISTENT,nonexistent
+DESCRIPTION_SUMTI_IS_A_THING,sumti is a THING
+CECILE_LOOKS_AT_BANANA,{cecile} {{looks at} {banana}}
+CECILE_EATS_BANANA,{cecile} {{eats} {banana}}
+BOB_EATS_CHIPS,{bob} {{eats} {chips}}
+BOB_EATS_BANANA,{bob} {{eats} {banana}}
+ALICE_EATS_CHIPS,{alice} {{eats} {chips}}
+ALICE_EATS_BANANA,{alice} {{eats} {banana}}
+SUMTI_IS_A_THING_CHANGED,{sumti} is a {THING} changed
+COULDBE,could be
+PUTTY,putty
+OSGI,osgi
+BITCH,bitch
+OSGI_IS_A_BITCH,{osgi} is a {bitch}
+DOG,dog
+ELEMENT_MODEL,elementModel
+CONTAINS_ELEMENT,{my model} contains {alice}
+MY_MODEL,my model
+FOLDER,folder
+HUMAN,human
+ALICE_IS_A_HUMAN,{alice} is a {human}
+HUMAN_IS_A_ANIMAL,{human} is a {animal}
+DOG_IS_A_ANIMAL,{dog} is a {animal}
+MY_MODEL_IS_A_FOLDER,{my model} is a {folder}
diff --git a/inez.target/inez.target b/inez.target/inez.target
index 982a8a2..3b4d34e 100644
--- a/inez.target/inez.target
+++ b/inez.target/inez.target
@@ -23,13 +23,13 @@
io.github.magwas
konveyor-base-testing
- 0.4.32
+ 0.4.38
jar
io.github.magwas
konveyor-base
- 0.4.32
+ 0.4.38
jar
diff --git a/inez.target/pom.xml b/inez.target/pom.xml
index aa8e3a7..e1873ee 100644
--- a/inez.target/pom.xml
+++ b/inez.target/pom.xml
@@ -58,6 +58,11 @@
javafx-controls
21.0.8
+
+ io.github.magwas
+ konveyor-base-testing
+ ${version.konveyor}
+
diff --git a/pom.xml b/pom.xml
index d440ba3..a8451d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
io.github.magwas
konveyor-parent
- 0.4.32
+ 0.4.38
inez
0.0.1
@@ -55,7 +55,7 @@
true
- 0.4.32
+ 0.4.38