/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.plsql; import org.apache.commons.io.IOUtils; import org.junit.Test; public class PLSQLParserTest extends AbstractPLSQLParserTst { @Test public void testExceptions() { parsePLSQL("CREATE OR REPLACE PROCEDURE bar IS BEGIN" + " doSomething;" + " EXCEPTION" + " WHEN FooException THEN" + " doSomethingElse;" + " WHEN OTHERS THEN" + " doSomethingElse;" + "END;"); } /** * See https://sourceforge.net/p/pmd/bugs/1167/ */ @Test public void testBOM() { parsePLSQL("\ufeff" + "CREATE OR REPLACE PROCEDURE bar IS BEGIN" + " doSomething;" + " EXCEPTION" + " WHEN FooException THEN" + " doSomethingElse;" + " WHEN OTHERS THEN" + " doSomethingElse;" + "END;"); } @Test(timeout = 5000) public void testBug1531() { parsePLSQL("create or replace force view oxa.o_xa_function_role_types as\n" + "select \"CFT_ID\",\"CFR_ID\",\"CFT_NAME\",\"TCN\",\"LOG_MODULE\",\"LOG_USER\",\"LOG_DATE\",\"LOG_TIME\" from crm_function_role_types\n" + "/"); } @Test public void testBug1527() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/InlinePragmaProcError.pls"))); } @Test public void testBug1520IsOfType() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/IsOfType.pls"))); } @Test public void testBug1520Using() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/Using.pls"))); } @Test public void testSingleLineSelect() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/SingleLineSelect.pls"))); } @Test public void testMultiLineSelect() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/MultiLineSelect.pls"))); } @Test public void testIsNull() throws Exception { parsePLSQL(IOUtils.toString(PLSQLParserTest.class.getResourceAsStream("ast/IsNull.pls"))); } }