/*
* Copyright 2010-2017 Boxfuse GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.flywaydb.core.internal.dbsupport.enterprisedb;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Test for EnterpriseDBSqlStatementBuilder.
*/
public class EnterpriseDBSqlStatementBuilderSmallTest {
private EnterpriseDBSqlStatementBuilder builder = new EnterpriseDBSqlStatementBuilder();
@Test
public void setDefineOff() {
builder.addLine("set define off;");
assertTrue(builder.canDiscard());
}
@Test
public void changeDelimiterRegEx() {
assertNull(builder.changeDelimiterIfNecessary("BEGIN_DATE", null));
assertEquals("/", builder.changeDelimiterIfNecessary("BEGIN DATE", null).getDelimiter());
assertEquals("/", builder.changeDelimiterIfNecessary("BEGIN", null).getDelimiter());
}
@Test
public void nvarchar() {
builder.addLine("INSERT INTO nvarchar2_test VALUES ( N'qwerty' );");
assertTrue(builder.isTerminated());
}
@Test
public void notNvarchar() {
builder.addLine("INSERT INTO nvarchar2_test VALUES ( ' N' );");
assertTrue(builder.isTerminated());
}
@Test
public void qQuote() {
builder.addLine("select q'[Hello 'no quotes]' from dual;");
assertTrue(builder.isTerminated());
}
@Test
public void quotedStringEndingWithN() {
builder.addLine("insert into table (COLUMN) values 'VALUE_WITH_N';");
assertTrue(builder.isTerminated());
}
@Test
public void quotedWithFrom() {
builder.addLine("insert into table (COLUMN) values 'FROM';");
assertTrue(builder.isTerminated());
}
@Test
public void quotedWithFromComplex() {
builder.addLine("DELETE FROM TEST.TABLE1 where CFG_AREA_ID_1 like '%NAME%' AND SOME_ID='NITS'AND CFG_AREA_CD IN ('COND_TXT','FORM');");
assertTrue(builder.isTerminated());
}
}