package org.fugazi.ql.type_checker; import org.fugazi.ql.type_checker.issue.ASTNodeIssue; import org.fugazi.ql.type_checker.issue.ASTNodeIssueType; import org.fugazi.ql.type_checker.issue.error.TypeMismatchError; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class TestCheckerInvalidOperandTypes extends TestQlTypeCheckerBase { @Before public void setUp() { this.fileName = "invalidOperandTypes.ql"; super.setUp(); } @Test public void testFormCorrect() throws Exception { boolean formCorrect = qlChecker.isFormCorrect(); assertFalse(formCorrect); } @Test public void testErrorCount() throws Exception { List<ASTNodeIssue> errors = qlChecker.getErrors(); assertFalse(errors.isEmpty()); assertEquals(15, errors.size()); } @Test public void testErrorTypes() throws Exception { List<ASTNodeIssue> errors = qlChecker.getErrors(); ASTNodeIssueType expectedType = new TypeMismatchError(); List<ASTNodeIssueType> receivedTypes = new ArrayList<>(); for (ASTNodeIssue error: errors) { receivedTypes.add(error.getErrorType()); } // no custom arrayEquals method for (ASTNodeIssueType received : receivedTypes) { assertTrue(received.equals(expectedType)); } } @Test public void testNoWarnings() throws Exception { List<ASTNodeIssue> warnings = qlChecker.getWarnings(); assertTrue(warnings.isEmpty()); } }