diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 5b42f4cb..0de3675b 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -39,6 +39,45 @@ +org.jacoco +jacoco-maven-plugin +0.8.14 + + +default-prepare-agent + +prepare-agent + + + +default-report + +report + + + +default-check + +check + + + + +BUNDLE + + +COMPLEXITY +COVEREDRATIO +0.40 + + + + + + + + + org.apache.maven.plugins maven-compiler-plugin ${pVersion.compiler} @@ -193,7 +232,7 @@ gson 2.10.1 - + diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java new file mode 100644 index 00000000..341ce079 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java @@ -0,0 +1,15 @@ + +package liquidjava.rj_language; + +import static org.junit.Assert.assertNotEquals; +import org.junit.Test; +import liquidjava.rj_language.ast.LiteralString; + +public class TestLiteralString { + @Test + public void testLiteralString() { + LiteralString s1 = new LiteralString("hello"); + LiteralString s2 = new LiteralString("world"); + assertNotEquals(s1.hashCode(), s2.hashCode()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralBoolean.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralBoolean.java new file mode 100644 index 00000000..82b4c70f --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralBoolean.java @@ -0,0 +1,16 @@ +package liquidjava.rj_language.ast; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * Testa o método LiteralBoolean devolve a string "true" quando o valor booleano interno é verdadeiro + */ + +class LiteralBooleanSimplestTest { + + @Test + void testIsBooleanTrue() { + assertTrue(new LiteralBoolean(true).isBooleanTrue()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralInt.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralInt.java new file mode 100644 index 00000000..0d485d2c --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralInt.java @@ -0,0 +1,16 @@ +package liquidjava.rj_language.ast; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Testa se o método LiteralInt devolve o número em formato de texto + */ + +class TestLiteralInt { + + @Test + void testToStringReturnsNumber() { + assertEquals("42", new LiteralInt(42).toString()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestOptimization.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestOptimization.java new file mode 100644 index 00000000..cdf819a8 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestOptimization.java @@ -0,0 +1,18 @@ +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import liquidjava.rj_language.ast.BinaryExpression; +import liquidjava.rj_language.ast.LiteralInt; +import liquidjava.rj_language.opt.ConstantFolding; +import liquidjava.rj_language.opt.derivation_node.ValDerivationNode; + +public class TestOptimization { + @Test + public void testBinaryFold() { + BinaryExpression b = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2)); + + ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(b, null)); + assertEquals(r.getValue(), new LiteralInt(3)); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TesteIntegracao.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TesteIntegracao.java new file mode 100644 index 00000000..25650fdc --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TesteIntegracao.java @@ -0,0 +1,17 @@ +package liquidjava.api.tests; + +import static org.junit.Assert.fail; + +import liquidjava.api.CommandLineLauncher; +import org.junit.Test; + +public class TesteIntegracao { + /** + * Testa se a execução do método principal de CommandLineLauncher sem argumentos arranca sem lançar exceções + */ + @Test + public void testMainWithNoArguments() { + CommandLineLauncher.main(new String[] {}); + } + +}