Skip to content

Commit e3c982e

Browse files
committed
Testing progress
1 parent 1954e43 commit e3c982e

File tree

1 file changed

+220
-16
lines changed

1 file changed

+220
-16
lines changed

src/test/java/issues/gh100/FromJoinWhereTest.java

Lines changed: 220 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
1+
/**
2+
* Copyright 2016-2019 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
116
package issues.gh100;
217

318
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.junit.jupiter.api.Assertions.assertAll;
519
import static org.mybatis.dynamic.sql.SqlBuilder.*;
620

721
import org.junit.jupiter.api.Test;
@@ -61,7 +75,7 @@ public void testFromJoinB1() {
6175
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
6276
.from(StudentDynamicSqlSupport.student);
6377

64-
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
78+
builder1.join(StudentRegDynamicSqlSupport.studentReg)
6579
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
6680

6781
String expected = "select student.id, student.name, student.idcard"
@@ -98,7 +112,7 @@ public void testfromJoinWhereB1() {
98112
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
99113
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
100114

101-
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
115+
builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
102116

103117
String expected = "select student.id, student.name, student.idcard"
104118
+ " from student"
@@ -118,7 +132,7 @@ public void testfromJoinWhereB2() {
118132
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
119133
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
120134

121-
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
135+
builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
122136

123137
String expected = "select student.id, student.name, student.idcard"
124138
+ " from student"
@@ -160,7 +174,7 @@ public void testFromJoinWhereUnionB1() {
160174

161175
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
162176

163-
QueryExpressionDSL<SelectModel> builder4 = builder3.union()
177+
builder3.union()
164178
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
165179
.from(StudentDynamicSqlSupport.student);
166180

@@ -187,7 +201,7 @@ public void testFromJoinWhereUnionB2() {
187201

188202
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
189203

190-
QueryExpressionDSL<SelectModel> builder4 = builder3.union()
204+
builder3.union()
191205
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
192206
.from(StudentDynamicSqlSupport.student);
193207

@@ -214,7 +228,7 @@ public void testFromJoinWhereUnionB3() {
214228

215229
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
216230

217-
QueryExpressionDSL<SelectModel> builder4 = builder3.union()
231+
builder3.union()
218232
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
219233
.from(StudentDynamicSqlSupport.student);
220234

@@ -258,6 +272,196 @@ public void testFromJoinWhereUnionB4() {
258272
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
259273
}
260274

275+
@Test
276+
public void testFromJoinWhereUnionUnionB1() {
277+
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
278+
.from(StudentDynamicSqlSupport.student);
279+
280+
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
281+
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
282+
283+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
284+
285+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
286+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
287+
.from(StudentDynamicSqlSupport.student)
288+
.where(StudentDynamicSqlSupport.id, isNotNull());
289+
290+
builder4.union()
291+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
292+
.from(StudentDynamicSqlSupport.student)
293+
.where(StudentDynamicSqlSupport.id, isNull());
294+
295+
String expected = "select student.id, student.name, student.idcard"
296+
+ " from student"
297+
+ " join student_reg on student.id = student_reg.studentId"
298+
+ " where student.idcard = #{parameters.p1}"
299+
+ " union"
300+
+ " select id, name, idcard"
301+
+ " from student"
302+
+ " where id is not null"
303+
+ " union"
304+
+ " select id, name, idcard"
305+
+ " from student"
306+
+ " where id is null";
307+
308+
SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategy.MYBATIS3);
309+
310+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
311+
}
312+
313+
@Test
314+
public void testFromJoinWhereUnionUnionB2() {
315+
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
316+
.from(StudentDynamicSqlSupport.student);
317+
318+
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
319+
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
320+
321+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
322+
323+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
324+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
325+
.from(StudentDynamicSqlSupport.student)
326+
.where(StudentDynamicSqlSupport.id, isNotNull());
327+
328+
builder4.union()
329+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
330+
.from(StudentDynamicSqlSupport.student)
331+
.where(StudentDynamicSqlSupport.id, isNull());
332+
333+
String expected = "select student.id, student.name, student.idcard"
334+
+ " from student"
335+
+ " join student_reg on student.id = student_reg.studentId"
336+
+ " where student.idcard = #{parameters.p1}"
337+
+ " union"
338+
+ " select id, name, idcard"
339+
+ " from student"
340+
+ " where id is not null"
341+
+ " union"
342+
+ " select id, name, idcard"
343+
+ " from student"
344+
+ " where id is null";
345+
346+
SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategy.MYBATIS3);
347+
348+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
349+
}
350+
351+
@Test
352+
public void testFromJoinWhereUnionUnionB3() {
353+
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
354+
.from(StudentDynamicSqlSupport.student);
355+
356+
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
357+
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
358+
359+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
360+
361+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
362+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
363+
.from(StudentDynamicSqlSupport.student)
364+
.where(StudentDynamicSqlSupport.id, isNotNull());
365+
366+
builder4.union()
367+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
368+
.from(StudentDynamicSqlSupport.student)
369+
.where(StudentDynamicSqlSupport.id, isNull());
370+
371+
String expected = "select student.id, student.name, student.idcard"
372+
+ " from student"
373+
+ " join student_reg on student.id = student_reg.studentId"
374+
+ " where student.idcard = #{parameters.p1}"
375+
+ " union"
376+
+ " select id, name, idcard"
377+
+ " from student"
378+
+ " where id is not null"
379+
+ " union"
380+
+ " select id, name, idcard"
381+
+ " from student"
382+
+ " where id is null";
383+
384+
SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategy.MYBATIS3);
385+
386+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
387+
}
388+
389+
@Test
390+
public void testFromJoinWhereUnionUnionB4() {
391+
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
392+
.from(StudentDynamicSqlSupport.student);
393+
394+
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
395+
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
396+
397+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
398+
399+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
400+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
401+
.from(StudentDynamicSqlSupport.student)
402+
.where(StudentDynamicSqlSupport.id, isNotNull());
403+
404+
builder4.union()
405+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
406+
.from(StudentDynamicSqlSupport.student)
407+
.where(StudentDynamicSqlSupport.id, isNull());
408+
409+
String expected = "select student.id, student.name, student.idcard"
410+
+ " from student"
411+
+ " join student_reg on student.id = student_reg.studentId"
412+
+ " where student.idcard = #{parameters.p1}"
413+
+ " union"
414+
+ " select id, name, idcard"
415+
+ " from student"
416+
+ " where id is not null"
417+
+ " union"
418+
+ " select id, name, idcard"
419+
+ " from student"
420+
+ " where id is null";
421+
422+
SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategy.MYBATIS3);
423+
424+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
425+
}
426+
427+
@Test
428+
public void testFromJoinWhereUnionUnionB5() {
429+
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
430+
.from(StudentDynamicSqlSupport.student);
431+
432+
QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
433+
.on(StudentDynamicSqlSupport.id, equalTo(StudentRegDynamicSqlSupport.studentid));
434+
435+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
436+
437+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
438+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
439+
.from(StudentDynamicSqlSupport.student)
440+
.where(StudentDynamicSqlSupport.id, isNotNull());
441+
442+
QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder5 = builder4.union()
443+
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
444+
.from(StudentDynamicSqlSupport.student)
445+
.where(StudentDynamicSqlSupport.id, isNull());
446+
447+
String expected = "select student.id, student.name, student.idcard"
448+
+ " from student"
449+
+ " join student_reg on student.id = student_reg.studentId"
450+
+ " where student.idcard = #{parameters.p1}"
451+
+ " union"
452+
+ " select id, name, idcard"
453+
+ " from student"
454+
+ " where id is not null"
455+
+ " union"
456+
+ " select id, name, idcard"
457+
+ " from student"
458+
+ " where id is null";
459+
460+
SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategy.MYBATIS3);
461+
462+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
463+
}
464+
261465
@Test
262466
public void testFromJoinWhereUnionOrderByB1() {
263467
QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
@@ -272,7 +476,7 @@ public void testFromJoinWhereUnionOrderByB1() {
272476
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
273477
.from(StudentDynamicSqlSupport.student);
274478

275-
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
479+
builder4.orderBy(StudentDynamicSqlSupport.id);
276480

277481
String expected = "select student.id, student.name, student.idcard"
278482
+ " from student"
@@ -302,7 +506,7 @@ public void testFromJoinWhereUnionOrderByB2() {
302506
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
303507
.from(StudentDynamicSqlSupport.student);
304508

305-
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
509+
builder4.orderBy(StudentDynamicSqlSupport.id);
306510

307511
String expected = "select student.id, student.name, student.idcard"
308512
+ " from student"
@@ -332,7 +536,7 @@ public void testFromJoinWhereUnionOrderByB3() {
332536
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
333537
.from(StudentDynamicSqlSupport.student);
334538

335-
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
539+
builder4.orderBy(StudentDynamicSqlSupport.id);
336540

337541
String expected = "select student.id, student.name, student.idcard"
338542
+ " from student"
@@ -362,7 +566,7 @@ public void testFromJoinWhereUnionOrderByB4() {
362566
.select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
363567
.from(StudentDynamicSqlSupport.student);
364568

365-
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
569+
builder4.orderBy(StudentDynamicSqlSupport.id);
366570

367571
String expected = "select student.id, student.name, student.idcard"
368572
+ " from student"
@@ -424,7 +628,7 @@ public void testFromJoinWhereUnionOrderByLimitB1() {
424628

425629
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
426630

427-
SelectDSL<SelectModel>.LimitFinisher builder6 = builder5.limit(3);
631+
builder5.limit(3);
428632

429633
String expected = "select student.id, student.name, student.idcard"
430634
+ " from student"
@@ -457,7 +661,7 @@ public void testFromJoinWhereUnionOrderByLimitB2() {
457661

458662
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
459663

460-
SelectDSL<SelectModel>.LimitFinisher builder6 = builder5.limit(3);
664+
builder5.limit(3);
461665

462666
String expected = "select student.id, student.name, student.idcard"
463667
+ " from student"
@@ -490,7 +694,7 @@ public void testFromJoinWhereUnionOrderByLimitB3() {
490694

491695
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
492696

493-
SelectDSL<SelectModel>.LimitFinisher builder6 = builder5.limit(3);
697+
builder5.limit(3);
494698

495699
String expected = "select student.id, student.name, student.idcard"
496700
+ " from student"
@@ -523,7 +727,7 @@ public void testFromJoinWhereUnionOrderByLimitB4() {
523727

524728
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
525729

526-
SelectDSL<SelectModel>.LimitFinisher builder6 = builder5.limit(3);
730+
builder5.limit(3);
527731

528732
String expected = "select student.id, student.name, student.idcard"
529733
+ " from student"
@@ -556,7 +760,7 @@ public void testFromJoinWhereUnionOrderByLimitB5() {
556760

557761
SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
558762

559-
SelectDSL<SelectModel>.LimitFinisher builder6 = builder5.limit(3);
763+
builder5.limit(3);
560764

561765
String expected = "select student.id, student.name, student.idcard"
562766
+ " from student"

0 commit comments

Comments
 (0)