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.segment.hint;
19
20 import lombok.AccessLevel;
21 import lombok.NoArgsConstructor;
22 import org.apache.shardingsphere.sql.parser.sql.dialect.segment.sqlserver.hint.TableHintLimitedSegment;
23 import org.apache.shardingsphere.sql.parser.sql.dialect.segment.sqlserver.hint.WithTableHintSegment;
24 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
25 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert;
26 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.hint.ExpectedTableHint;
27 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.hint.ExpectedWithTableHintClause;
28 import org.hamcrest.CoreMatchers;
29 import static org.hamcrest.CoreMatchers.is;
30 import static org.hamcrest.MatcherAssert.assertThat;
31 import static org.junit.jupiter.api.Assertions.assertNotNull;
32 import static org.junit.jupiter.api.Assertions.assertNull;
33
34
35
36
37 @NoArgsConstructor(access = AccessLevel.PRIVATE)
38 public final class WithTableHintClauseAssert {
39
40
41
42
43
44
45
46
47 public static void assertIs(final SQLCaseAssertContext assertContext, final WithTableHintSegment actual, final ExpectedWithTableHintClause expected) {
48 if (null == expected.getTableHint()) {
49 assertThat(assertContext.getText("with table hint clause assertion error: "), actual.getTableHintLimitedSegments().size(), CoreMatchers.is(expected.getTableHint().size()));
50 } else {
51 int count = 0;
52 for (TableHintLimitedSegment each : actual.getTableHintLimitedSegments()) {
53 assertTableHint(assertContext, each, expected.getTableHint().get(count));
54 count++;
55 }
56 }
57 SQLSegmentAssert.assertIs(assertContext, actual, expected);
58 }
59
60
61
62
63
64
65
66
67 public static void assertTableHint(final SQLCaseAssertContext assertContext, final TableHintLimitedSegment actual, final ExpectedTableHint expected) {
68 if (null == expected) {
69 assertNull(actual, assertContext.getText("Actual table hint should not exist."));
70 } else {
71 assertNotNull(actual, assertContext.getText("Actual table hint should exist."));
72 assertThat(assertContext.getText("table hint value assertion error."), actual.getValue(), is(expected.getValue()));
73 SQLSegmentAssert.assertIs(assertContext, actual, expected);
74 }
75 }
76 }