1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl;
19
20 import lombok.AccessLevel;
21 import lombok.NoArgsConstructor;
22 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
23 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterIndexStatement;
24 import org.apache.shardingsphere.sql.parser.sql.dialect.handler.ddl.AlterIndexStatementHandler;
25 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAlterIndexStatement;
26 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
27 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.index.IndexAssert;
28 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.table.TableAssert;
29 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.AlterIndexStatementTestCase;
30
31 import java.util.Optional;
32
33 import static org.junit.jupiter.api.Assertions.assertFalse;
34 import static org.junit.jupiter.api.Assertions.assertTrue;
35
36
37
38
39 @NoArgsConstructor(access = AccessLevel.PRIVATE)
40 public final class AlterIndexStatementAssert {
41
42
43
44
45
46
47
48
49 public static void assertIs(final SQLCaseAssertContext assertContext, final AlterIndexStatement actual, final AlterIndexStatementTestCase expected) {
50 assertTable(assertContext, actual, expected);
51 assertIndex(assertContext, actual, expected);
52 }
53
54 private static void assertTable(final SQLCaseAssertContext assertContext, final AlterIndexStatement actual, final AlterIndexStatementTestCase expected) {
55 Optional<SimpleTableSegment> tableSegment = AlterIndexStatementHandler.getSimpleTableSegment(actual);
56 if (null == expected.getTable()) {
57 assertFalse(tableSegment.isPresent(), assertContext.getText("Actual table segment should not exist."));
58 } else {
59 assertTrue(tableSegment.isPresent(), assertContext.getText("Actual table segment should exist."));
60 TableAssert.assertIs(assertContext, tableSegment.get(), expected.getTable());
61 }
62 }
63
64 private static void assertIndex(final SQLCaseAssertContext assertContext, final AlterIndexStatement actual, final AlterIndexStatementTestCase expected) {
65
66 if (actual instanceof OracleAlterIndexStatement && actual.getIndex().isPresent()) {
67 IndexAssert.assertIs(assertContext, actual.getIndex().get(), expected.getIndex());
68 }
69 }
70 }