diff --git a/src/test/java/terms/DependencyTest.java b/src/test/java/terms/DependencyTest.java new file mode 100644 index 0000000..c940eab --- /dev/null +++ b/src/test/java/terms/DependencyTest.java @@ -0,0 +1,71 @@ +package terms; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +import exceptions.SyntaxException; +import models.terms.Dependency; +import models.terms.Resource; +import utils.Utils; + +public class DependencyTest { + + Resource a = new Resource("a", Utils.INT, 1); + Resource b = new Resource("b", Utils.INT, 1); + Resource c = new Resource("c", Utils.INT, 1); + Resource d = new Resource("d", Utils.INT, 2); + + @Test + void EqualsTest() { + + Dependency d1 = new Dependency(a, b); + Dependency d2 = new Dependency(a, b, b); + assertEquals(d1, d2); + + Dependency d3 = new Dependency(a, c); + assertFalse(d1.equals(d3)); + + Dependency d4 = new Dependency(a, b, c); + Dependency d5 = new Dependency(a, c, b); + assertEquals(d4, d5); + + Dependency d6 = new Dependency(b, a); + assertFalse(d1.equals(d6)); + } + + @Test + void OrderTest() { + + assertThrows(SyntaxException.class, () -> { + new Dependency(d, a); + }); + + assertThrows(SyntaxException.class, () -> { + new Dependency(a, b, d); + }); + + Dependency d1 = new Dependency(a, b); + assertEquals(d1.getOrder(), 1); + assertEquals(d1.getTermOrder(), 0); + + Dependency d2 = new Dependency(a, d); + assertEquals(d2.getOrder(), 2); + assertEquals(d2.getTermOrder(), 1); + + Dependency d3 = new Dependency(a, b, c); + assertEquals(d3.getOrder(), 1); + } + + @Test + void StringTest() { + Dependency d1 = new Dependency(a, b); + assertEquals(d1.toString(), "a : b"); + + Dependency d2 = new Dependency(a, b, c); + assertEquals(d2.toString(), "a : b, c"); + + Dependency d3 = new Dependency(a, c, b); + assertEquals(d3.toString(), "a : b, c"); + } + +}