DropValidatorTest.java
/*-
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2020 JSQLParser
* %%
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
* #L%
*/
package net.sf.jsqlparser.util.validation.validator;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.feature.Feature;
import net.sf.jsqlparser.util.validation.ValidationTestAsserts;
import net.sf.jsqlparser.util.validation.feature.DatabaseType;
import net.sf.jsqlparser.util.validation.feature.FeaturesAllowed;
import org.junit.jupiter.api.Test;
public class DropValidatorTest extends ValidationTestAsserts {
@Test
public void testValidationDrop() throws JSQLParserException {
String sql = "DROP TABLE tab1; DROP TABLE tab2;";
validateNoErrors(sql, 2, DatabaseType.DATABASES);
}
@Test
public void testValidationDropNotAllowed() throws JSQLParserException {
String sql = "DROP VIEW myview";
validateNotAllowed(sql, 1, 1, FeaturesAllowed.DML, Feature.drop, Feature.dropView);
}
@Test
public void testValidationDropIfExists() throws JSQLParserException {
String sql = "DROP TABLE IF EXISTS tab2;";
validateNoErrors(sql, 1, DatabaseType.MYSQL, DatabaseType.SQLSERVER, DatabaseType.MARIADB,
DatabaseType.POSTGRESQL, DatabaseType.H2);
}
@Test
public void testValidationDropIndexIfExists() throws JSQLParserException {
String sql = "DROP INDEX IF EXISTS idx_tab2_id;";
validateNoErrors(sql, 1, DatabaseType.SQLSERVER, DatabaseType.MARIADB,
DatabaseType.POSTGRESQL, DatabaseType.H2);
}
@Test
public void testValidationDropViewIfExists() throws JSQLParserException {
String sql = "DROP VIEW IF EXISTS myview;";
validateNoErrors(sql, 1, DatabaseType.MYSQL, DatabaseType.SQLSERVER, DatabaseType.MARIADB,
DatabaseType.POSTGRESQL, DatabaseType.H2);
}
@Test
public void testValidationDropSchemaIfExists() throws JSQLParserException {
String sql = "DROP SCHEMA IF EXISTS myschema;";
validateNoErrors(sql, 1, DatabaseType.MYSQL, DatabaseType.SQLSERVER, DatabaseType.MARIADB,
DatabaseType.POSTGRESQL, DatabaseType.H2);
}
@Test
public void testValidationDropSequenceIfExists() throws JSQLParserException {
String sql = "DROP SEQUENCE IF EXISTS mysequence;";
validateNoErrors(sql, 1, DatabaseType.SQLSERVER, DatabaseType.MARIADB,
DatabaseType.POSTGRESQL, DatabaseType.H2);
validateNotSupported(sql, 1, 1, DatabaseType.MYSQL, Feature.dropSequence);
}
}