提交 a8980db4 编写于 作者: T terrymanu

for #660: refactor assert table

上级 f0ad9765
......@@ -22,7 +22,6 @@ import io.shardingjdbc.core.constant.ShardingOperator;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.ConditionAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Value;
import io.shardingjdbc.core.parsing.integrate.jaxb.limit.LimitAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.TableAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.GeneratedKeyTokenAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.IndexTokenAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.ItemsTokenAssert;
......@@ -39,7 +38,6 @@ import io.shardingjdbc.core.parsing.parser.context.condition.Conditions;
import io.shardingjdbc.core.parsing.parser.context.limit.Limit;
import io.shardingjdbc.core.parsing.parser.context.limit.LimitValue;
import io.shardingjdbc.core.parsing.parser.context.selectitem.AggregationSelectItem;
import io.shardingjdbc.core.parsing.parser.context.table.Tables;
import io.shardingjdbc.core.parsing.parser.expression.SQLExpression;
import io.shardingjdbc.core.parsing.parser.expression.SQLNumberExpression;
import io.shardingjdbc.core.parsing.parser.expression.SQLPlaceholderExpression;
......@@ -66,10 +64,6 @@ import static org.junit.Assert.assertTrue;
public class ParserAssertHelper {
public static void assertTables(final List<TableAssert> expected, final Tables actual) {
assertTrue(EqualsBuilder.reflectionEquals(ParserJAXBHelper.getTables(expected), actual));
}
public static void assertConditions(
final List<ConditionAssert> expected, final Conditions actual, final boolean isPreparedStatement) {
assertTrue(EqualsBuilder.reflectionEquals(buildExpectedConditions(expected, isPreparedStatement), actual));
......
......@@ -23,39 +23,18 @@ import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import io.shardingjdbc.core.constant.AggregationType;
import io.shardingjdbc.core.constant.OrderDirection;
import io.shardingjdbc.core.parsing.integrate.jaxb.groupby.GroupByColumnAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.item.AggregationSelectItemAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.TableAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.orderby.OrderByColumnAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.root.ParserAssert;
import io.shardingjdbc.core.parsing.parser.context.OrderItem;
import io.shardingjdbc.core.parsing.parser.context.selectitem.AggregationSelectItem;
import io.shardingjdbc.core.parsing.parser.context.table.Table;
import io.shardingjdbc.core.parsing.parser.context.table.Tables;
import io.shardingjdbc.core.parsing.integrate.jaxb.root.ParserAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.groupby.GroupByColumnAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.orderby.OrderByColumnAssert;
import io.shardingjdbc.core.parsing.parser.sql.dql.select.SelectStatement;
import java.util.List;
public final class ParserJAXBHelper {
/**
* Get tables.
*
* @param tables tables
* @return tables
*/
public static Tables getTables(final List<TableAssert> tables) {
Tables result = new Tables();
if (null == tables) {
return result;
}
for (TableAssert each : tables) {
Table table = new Table(each.getName(), Optional.fromNullable(each.getAlias()));
result.add(table);
}
return result;
}
/**
* Get select statement.
*
......
......@@ -33,6 +33,7 @@ import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlList;
import java.util.LinkedList;
import java.util.List;
@Getter
......@@ -49,7 +50,7 @@ public final class ParserAssert {
@XmlElementWrapper
@XmlElement(name = "table")
private List<TableAssert> tables;
private List<TableAssert> tables = new LinkedList<>();
@XmlElementWrapper
@XmlElement(name = "condition")
......
......@@ -17,11 +17,15 @@
package io.shardingjdbc.core.parsing.integrate.tests;
import com.google.common.base.Optional;
import io.shardingjdbc.core.constant.DatabaseType;
import io.shardingjdbc.core.parsing.SQLParsingEngine;
import io.shardingjdbc.core.parsing.integrate.asserts.ParserAssertHelper;
import io.shardingjdbc.core.parsing.integrate.asserts.ParserJAXBHelper;
import io.shardingjdbc.core.parsing.integrate.jaxb.root.ParserAssert;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.TableAssert;
import io.shardingjdbc.core.parsing.parser.context.table.Table;
import io.shardingjdbc.core.parsing.parser.context.table.Tables;
import io.shardingjdbc.core.parsing.parser.sql.SQLStatement;
import io.shardingjdbc.core.parsing.parser.sql.dql.select.SelectStatement;
import io.shardingjdbc.test.sql.SQLCasesLoader;
......@@ -31,6 +35,11 @@ import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@RequiredArgsConstructor
public final class IntegrateSupportedSQLParsingTest extends AbstractBaseIntegrateSQLParsingTest {
......@@ -61,7 +70,7 @@ public final class IntegrateSupportedSQLParsingTest extends AbstractBaseIntegrat
private void assertSQLStatement(final SQLStatement actual, final boolean isPreparedStatement) {
ParserAssert parserAssert = parserAssertsLoader.getParserAssert(sqlCaseId);
ParserAssertHelper.assertTables(parserAssert.getTables(), actual.getTables());
assertTables(actual.getTables(), parserAssert.getTables());
ParserAssertHelper.assertConditions(parserAssert.getConditions(), actual.getConditions(), isPreparedStatement);
ParserAssertHelper.assertSqlTokens(parserAssert.getTokens().getTokenAsserts(), actual.getSqlTokens(), isPreparedStatement);
if (actual instanceof SelectStatement) {
......@@ -73,4 +82,23 @@ public final class IntegrateSupportedSQLParsingTest extends AbstractBaseIntegrat
ParserAssertHelper.assertLimit(parserAssert.getLimit(), selectStatement.getLimit(), isPreparedStatement);
}
}
private void assertTables(final Tables actual, final List<TableAssert> expected) {
assertThat(actual.getTableNames().size(), is(expected.size()));
for (TableAssert each : expected) {
Optional<Table> tableOptional;
if (null != each.getAlias()) {
tableOptional = actual.find(each.getAlias());
} else {
tableOptional = actual.find(each.getName());
}
assertTrue(tableOptional.isPresent());
assertTable(tableOptional.get(), each);
}
}
private void assertTable(final Table actual, final TableAssert expected) {
assertThat(actual.getName(), is(expected.getName()));
assertThat(actual.getAlias().orNull(), is(expected.getAlias()));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册