Skip to content

Commit 44b2a80

Browse files
committed
Add SQL completion tests for top element before at-sign and static property after other element
1 parent 19b6233 commit 44b2a80

File tree

5 files changed

+77
-6
lines changed

5 files changed

+77
-6
lines changed

src/test/kotlin/org/domaframework/doma/intellij/complate/sql/SqlCompleteTest.kt

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ class SqlCompleteTest : DomaSqlTest() {
3232
"$testDaoName/completeDaoArgument.sql",
3333
"$testDaoName/completeInstancePropertyFromDaoArgumentClass.sql",
3434
"$testDaoName/completeInstancePropertyWithMethodParameter.sql",
35+
"$testDaoName/completeTopElementBeforeAtsign.sql",
3536
"$testDaoName/completeJavaPackageClass.sql",
3637
"$testDaoName/completeDirective.sql",
3738
"$testDaoName/completeBatchInsert.sql",
3839
"$testDaoName/completeStaticPropertyFromStaticPropertyCall.sql",
3940
"$testDaoName/completePropertyAfterStaticPropertyCall.sql",
4041
"$testDaoName/completePropertyAfterStaticPropertyCallWithMethodParameter.sql",
4142
"$testDaoName/completePropertyAfterStaticMethodCall.sql",
43+
"$testDaoName/completeStaticPropertyAfterOtherElement.sql",
4244
"$testDaoName/completeBuiltinFunction.sql",
4345
"$testDaoName/completeDirectiveInsideIf.sql",
4446
"$testDaoName/completeDirectiveFieldInsideIfWithMethodParameter.sql",
@@ -131,6 +133,24 @@ class SqlCompleteTest : DomaSqlTest() {
131133
"isBlank()",
132134
),
133135
)
136+
innerDirectiveCompleteTest(
137+
"$testDaoName/completeTopElementBeforeAtsign.sql",
138+
listOf(
139+
"employee",
140+
"id",
141+
"userIds",
142+
"userId",
143+
"userId_has_next",
144+
"userId_index",
145+
),
146+
listOf(
147+
"doma",
148+
"example",
149+
"projectNumber",
150+
"subProjects",
151+
"valueOf()",
152+
),
153+
)
134154
}
135155

136156
fun testCompleteJavaPackageClass() {
@@ -245,20 +265,36 @@ class SqlCompleteTest : DomaSqlTest() {
245265
"projectNumber",
246266
"projectName",
247267
"projectCategory",
268+
"status",
269+
"manager",
270+
"getFirstEmployee()",
271+
"getTermNumber()",
248272
),
249273
listOf(
250274
"projectDetailId",
251275
"members",
252-
"manager",
253-
"getFirstEmployee()",
254-
"getTermNumber()",
255276
"employeeId",
256277
"projects",
257-
"rank",
258278
"contains()",
259279
"isBlank()",
260280
),
261281
)
282+
innerDirectiveCompleteTest(
283+
"$testDaoName/completeStaticPropertyAfterOtherElement.sql",
284+
listOf(
285+
"projectNumber",
286+
"projectName",
287+
"projectCategory",
288+
"manager",
289+
"subProjects",
290+
"getTermNumber()",
291+
"getCustomNumber()",
292+
),
293+
listOf(
294+
"doma",
295+
"employee",
296+
),
297+
)
262298
}
263299

264300
fun testCompleteCallStaticPropertyClassPackage() {

src/test/testData/src/main/java/doma/example/dao/SqlCompleteTestDao.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ interface SqlCompleteTestDao {
2222
@Select
2323
Employee completeInstancePropertyWithMethodParameter(Employee employee, String name);
2424

25+
@Select
26+
Employee completeTopElementBeforeAtsign(Employee employee, Integer id, List<Integer> userIds);
27+
2528
@Insert(sqlFile = true)
2629
int completeJavaPackageClass(Employee employee);
2730

@@ -43,6 +46,9 @@ interface SqlCompleteTestDao {
4346
@Select
4447
Project completePropertyAfterStaticMethodCall();
4548

49+
@Select
50+
Employee completeStaticPropertyAfterOtherElement(Employee employee);
51+
4652
@Select
4753
Project completeBuiltinFunction(ProjectDetail detail);
4854

src/test/testData/src/main/resources/META-INF/doma/example/dao/SqlCompleteTestDao/completePropertyAfterStaticPropertyCallWithMethodParameter.sql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ from project p
77
inner join project_detail pd
88
on p.project_id = pd.project_id
99
where
10-
-- Code completion for static fields and methods
11-
and pd.manager_id = /* @doma.example.entity.ProjectDetail@getProject(employee.rank).<caret>pro */'TODO'
10+
and pd.manager_id = /* @doma.example.entity.ProjectDetail@getProject(employee.rank).<caret> */'TODO'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
select
2+
p.project_id
3+
, p.statis
4+
, p.project_name
5+
, p.rank
6+
from project p
7+
inner join project_detail pd
8+
on p.project_id = pd.project_id
9+
where
10+
/*%for userId : userIds */
11+
pd.manager_id = /* id @doma.example.entity.ProjectDetail@<caret> */'TODO'
12+
/*%if userId_has_next */
13+
/*# "OR" */
14+
/*%end */
15+
/*%end */
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
select
2+
p.project_id
3+
, p.statis
4+
, p.project_name
5+
, p.rank
6+
from project p
7+
inner join project_detail pd
8+
on p.project_id = pd.project_id
9+
where
10+
/*%for userId : userIds */
11+
pd.manager_id = /* id <caret> @doma.example.entity.ProjectDetail@manager */'TODO'
12+
/*%if userId_has_next */
13+
/*# "OR" */
14+
/*%end */
15+
/*%end */

0 commit comments

Comments
 (0)