Skip to content

Commit b0cb24d

Browse files
committed
Add SQL files and update Doma configuration for method parameter validation
1 parent 1baa06e commit b0cb24d

File tree

43 files changed

+946
-170
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+946
-170
lines changed

src/test/kotlin/org/domaframework/doma/intellij/DomaSqlTest.kt

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
5757
addEntityJavaFile("EmployeeSummary.java")
5858
addEntityJavaFile("Project.java")
5959
addEntityJavaFile("ProjectDetail.java")
60+
addEntityJavaFile("DummyProject.java")
6061
addEntityJavaFile("Principal.java")
62+
addEntityJavaFile("ColumnEntity.java")
63+
addOtherJavaFile("domain", "ProjectNumber.java")
64+
addOtherJavaFile("domain", "DummyProjectNumber.java")
6165

6266
addExpressionJavaFile("TestExpressionFunctions.java")
6367
addExpressionJavaFile("TestNotExpressionFunctions.java")
@@ -116,8 +120,7 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
116120
}
117121

118122
private fun deleteSdk() {
119-
val oldJdk = ProjectJdkTable.getInstance().findJdk("Doma Test JDK")
120-
if (oldJdk == null) return
123+
val oldJdk = ProjectJdkTable.getInstance().findJdk("Doma Test JDK") ?: return
121124
WriteAction.runAndWait<RuntimeException> {
122125
ProjectJdkTable.getInstance().removeJdk(oldJdk)
123126
if (oldJdk is Disposable) {
@@ -151,7 +154,11 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
151154
}
152155
}
153156

154-
fun addDaoJavaFile(vararg fileNames: String) {
157+
protected fun addDomaCompileConfig() {
158+
addResourceCompileFile("doma.compile.config")
159+
}
160+
161+
protected fun addDaoJavaFile(vararg fileNames: String) {
155162
for (fileName in fileNames) {
156163
val file = File("$testDataPath/$sourceRoot/$packagePath/dao/$fileName")
157164
myFixture.addFileToProject(
@@ -188,7 +195,7 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
188195
)
189196
}
190197

191-
fun addResourceEmptySqlFile(vararg sqlFileNames: String) {
198+
protected fun addResourceEmptySqlFile(vararg sqlFileNames: String) {
192199
for (sqlFileName in sqlFileNames) {
193200
myFixture.addFileToProject(
194201
"main/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlFileName",
@@ -197,21 +204,21 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
197204
}
198205
}
199206

200-
fun addResourceCompileFile(readFileName: String) {
207+
protected fun addResourceCompileFile(readFileName: String) {
201208
val file = File("$testDataPath/$resourceRoot/$readFileName")
202209
myFixture.addFileToProject(
203210
"main/$resourceRoot/doma.compile.config",
204211
file.readText(),
205212
)
206213
}
207214

208-
fun addSqlFile(vararg sqlNames: String) {
215+
protected fun addSqlFile(vararg sqlNames: String) {
209216
for (sqlName in sqlNames) {
210217
addOtherPackageSqlFile("$packagePath/dao", sqlName)
211218
}
212219
}
213220

214-
fun addOtherPackageSqlFile(
221+
protected fun addOtherPackageSqlFile(
215222
packageName: String,
216223
sqlName: String,
217224
) {
@@ -223,9 +230,9 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
223230
)
224231
}
225232

226-
fun findSqlFile(sqlName: String): VirtualFile? = findSqlFile(packagePath, sqlName)
233+
protected fun findSqlFile(sqlName: String): VirtualFile? = findSqlFile(packagePath, sqlName)
227234

228-
fun findSqlFile(
235+
protected fun findSqlFile(
229236
packageName: String,
230237
sqlName: String,
231238
): VirtualFile? {
@@ -237,9 +244,9 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
237244
)
238245
}
239246

240-
fun findDaoClass(testDaoName: String): PsiClass = findDaoClass("doma.example.dao", testDaoName)
247+
protected fun findDaoClass(testDaoName: String): PsiClass = findDaoClass("doma.example.dao", testDaoName)
241248

242-
fun findDaoClass(
249+
protected fun findDaoClass(
243250
packageName: String,
244251
testDaoName: String,
245252
): PsiClass {

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class SqlCompleteTest : DomaSqlTest() {
6868
"department",
6969
"rank",
7070
"projects",
71-
"getFirstProject()",
71+
"getProject()",
7272
),
7373
listOf("getEmployeeRank()"),
7474
)
@@ -85,7 +85,7 @@ class SqlCompleteTest : DomaSqlTest() {
8585
"employeeName",
8686
"department",
8787
"rank",
88-
"getFirstProject()",
88+
"getProject()",
8989
"toLowerCase()",
9090
"charAt()",
9191
"contains()",
@@ -119,7 +119,7 @@ class SqlCompleteTest : DomaSqlTest() {
119119
"department",
120120
"rank",
121121
"projects",
122-
"getFirstProject()",
122+
"getProject()",
123123
),
124124
listOf("projectNumber", "projectDetailId", "members", "getEmployeeRank()"),
125125
)
@@ -142,7 +142,7 @@ class SqlCompleteTest : DomaSqlTest() {
142142
"department",
143143
"rank",
144144
"projects",
145-
"getFirstProject()",
145+
"getProject()",
146146
),
147147
)
148148
}
@@ -230,7 +230,7 @@ class SqlCompleteTest : DomaSqlTest() {
230230
innerDirectiveCompleteTest(
231231
"$testDaoName/completeBatchInsert.sql",
232232
listOf(
233-
"getFirstProject()",
233+
"getProject()",
234234
),
235235
listOf(
236236
"employeeName",
@@ -387,7 +387,7 @@ class SqlCompleteTest : DomaSqlTest() {
387387
"userName()",
388388
"userAge()",
389389
"langCode()",
390-
"isGest()",
390+
"isGuest()",
391391
"getId()",
392392
"getName()",
393393
"getAge()",
@@ -509,7 +509,7 @@ class SqlCompleteTest : DomaSqlTest() {
509509
innerDirectiveCompleteTest(
510510
"$testDaoName/completeParameterFirstPropertyWithMethodParameter.sql",
511511
listOf("projectNumber", "projectCategory", "getFirstEmployee()"),
512-
listOf("employeeId", "employeeName", "getFirstProject()"),
512+
listOf("employeeId", "employeeName", "getProject()"),
513513
)
514514

515515
innerDirectiveCompleteTest(
@@ -711,7 +711,7 @@ class SqlCompleteTest : DomaSqlTest() {
711711
}
712712

713713
fun testCompleteImplementCustomFunction() {
714-
addResourceCompileFile("doma.compile.config")
714+
addDomaCompileConfig()
715715
addSqlFile("$testDaoName/completeImplementCustomFunction.sql")
716716
innerDirectiveCompleteTest(
717717
"$testDaoName/completeImplementCustomFunction.sql",
@@ -723,7 +723,7 @@ class SqlCompleteTest : DomaSqlTest() {
723723
"getLangCode()",
724724
"isManager()",
725725
"langCode()",
726-
"isGest()",
726+
"isGuest()",
727727
"isBlank()",
728728
"isNotBlank()",
729729
),
@@ -746,7 +746,7 @@ class SqlCompleteTest : DomaSqlTest() {
746746
"userName()",
747747
"userAge()",
748748
"langCode()",
749-
"isGest()",
749+
"isGuest()",
750750
"getId()",
751751
"getName()",
752752
"getAge()",

src/test/kotlin/org/domaframework/doma/intellij/document/SqlSymbolDocumentTestCase.kt

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,29 +32,18 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
3232
override fun setUp() {
3333
super.setUp()
3434
addDaoJavaFile("$testPackage/$testDaoName.java")
35-
addSqlFile("$testPackage/$testDaoName/documentForItemDaoParam.sql")
36-
addSqlFile("$testPackage/$testDaoName/documentForItemDeclaration.sql")
37-
addSqlFile("$testPackage/$testDaoName/documentForItemElement.sql")
38-
addSqlFile("$testPackage/$testDaoName/documentForItemElementInBindVariable.sql")
39-
addSqlFile("$testPackage/$testDaoName/documentForItemElementInIfDirective.sql")
40-
addSqlFile("$testPackage/$testDaoName/documentForItemElementByFieldAccess.sql")
41-
addSqlFile("$testPackage/$testDaoName/documentForItemFirstElement.sql")
42-
addSqlFile("$testPackage/$testDaoName/documentForItemStaticProperty.sql")
43-
addSqlFile("$testPackage/$testDaoName/documentForItemHasNext.sql")
44-
addSqlFile("$testPackage/$testDaoName/documentForItemIndex.sql")
45-
addSqlFile("$testPackage/$testDaoName/documentForItemOptionalForItem.sql")
46-
addSqlFile("$testPackage/$testDaoName/documentForItemOptionalProperty.sql")
47-
addSqlFile("$testPackage/$testDaoName/documentForItemInvalidPrimary.sql")
4835
}
4936

5037
fun testDocumentForItemDaoParam() {
38+
addSqlFile("$testPackage/$testDaoName/documentForItemDaoParam.sql")
5139
val sqlName = "documentForItemDaoParam"
5240
val result: String? = null
5341

5442
documentationTest(sqlName, result)
5543
}
5644

5745
fun testDocumentForItemDeclaration() {
46+
addSqlFile("$testPackage/$testDaoName/documentForItemDeclaration.sql")
5847
val sqlName = "documentForItemDeclaration"
5948
val result =
6049
"<a href=\"psi_element://java.util.List\">List</a><<a href=\"psi_element://java.util.List\">" +
@@ -64,6 +53,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
6453
}
6554

6655
fun testDocumentForItemOptionalForItem() {
56+
addSqlFile("$testPackage/$testDaoName/documentForItemOptionalForItem.sql")
6757
val sqlName = "documentForItemOptionalForItem"
6858
val result =
6959
"<a href=\"psi_element://java.util.List\">List</a><<a href=\"psi_element://doma.example.entity.Project\">Project</a>> optionalProjects"
@@ -72,6 +62,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
7262
}
7363

7464
fun testDocumentForItemOptionalForItemProperty() {
65+
addSqlFile("$testPackage/$testDaoName/documentForItemOptionalProperty.sql")
7566
val sqlName = "documentForItemOptionalProperty"
7667
val result =
7768
"<a href=\"psi_element://java.util.List\">List</a><<a href=\"psi_element://java.lang.Integer\">Integer</a>> optionalIds"
@@ -80,6 +71,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
8071
}
8172

8273
fun testDocumentForItemElement() {
74+
addSqlFile("$testPackage/$testDaoName/documentForItemElement.sql")
8375
val sqlName = "documentForItemElement"
8476
val result =
8577
"<a href=\"psi_element://java.util.List\">List</a><<a href=\"psi_element://java.util.List\">" +
@@ -89,6 +81,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
8981
}
9082

9183
fun testDocumentForItemElementInBindVariable() {
84+
addSqlFile("$testPackage/$testDaoName/documentForItemElementInBindVariable.sql")
9285
val sqlName = "documentForItemElementInBindVariable"
9386
val result =
9487
"<a href=\"psi_element://java.util.List\">List</a><" +
@@ -98,6 +91,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
9891
}
9992

10093
fun testDocumentForItemElementInIfDirective() {
94+
addSqlFile("$testPackage/$testDaoName/documentForItemElementInIfDirective.sql")
10195
val sqlName = "documentForItemElementInIfDirective"
10296
val result =
10397
"<a href=\"psi_element://java.util.List\">List</a><" +
@@ -107,6 +101,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
107101
}
108102

109103
fun testDocumentForItemElementByFieldAccess() {
104+
addSqlFile("$testPackage/$testDaoName/documentForItemElementByFieldAccess.sql")
110105
val sqlName = "documentForItemElementByFieldAccess"
111106
val result =
112107
"<a href=\"psi_element://doma.example.entity.Project\">Project</a> project"
@@ -115,6 +110,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
115110
}
116111

117112
fun testDocumentForItemFirstElement() {
113+
addSqlFile("$testPackage/$testDaoName/documentForItemFirstElement.sql")
118114
val sqlName = "documentForItemFirstElement"
119115
val result =
120116
"<a href=\"psi_element://doma.example.entity.Principal.Permission\">Permission</a> item"
@@ -123,6 +119,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
123119
}
124120

125121
fun testDocumentForItemHasNext() {
122+
addSqlFile("$testPackage/$testDaoName/documentForItemHasNext.sql")
126123
val sqlName = "documentForItemHasNext"
127124
val result =
128125
"<a href=\"psi_element://boolean\">boolean</a> item_has_next"
@@ -131,6 +128,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
131128
}
132129

133130
fun testDocumentForItemIndex() {
131+
addSqlFile("$testPackage/$testDaoName/documentForItemIndex.sql")
134132
val sqlName = "documentForItemIndex"
135133
val result =
136134
"<a href=\"psi_element://int\">int</a> item_index"
@@ -139,6 +137,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
139137
}
140138

141139
fun testDocumentForItemStaticProperty() {
140+
addSqlFile("$testPackage/$testDaoName/documentForItemStaticProperty.sql")
142141
val sqlName = "documentForItemStaticProperty"
143142
val result =
144143
"<a href=\"psi_element://doma.example.entity.Project\">Project</a> project"
@@ -147,6 +146,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
147146
}
148147

149148
fun testDocumentForItemInvalidPrimary() {
149+
addSqlFile("$testPackage/$testDaoName/documentForItemInvalidPrimary.sql")
150150
val sqlName = "documentForItemInvalidPrimary"
151151
val result = " item"
152152

@@ -162,7 +162,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
162162
if (sqlFile == null) return
163163

164164
myFixture.configureFromExistingVirtualFile(sqlFile)
165-
var originalElement: PsiElement = myFixture.elementAtCaret
165+
val originalElement: PsiElement = myFixture.elementAtCaret
166166
val resultDocument = myDocumentationProvider.generateDoc(originalElement, originalElement)
167167
assertEquals("Documentation should contain expected text", result, resultDocument)
168168
}
@@ -177,7 +177,7 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
177177
if (sqlFile == null) return
178178

179179
myFixture.configureFromExistingVirtualFile(sqlFile)
180-
var originalElement: PsiElement? =
180+
val originalElement: PsiElement? =
181181
myFixture.findElementByText(originalElementName, SqlElIdExpr::class.java)
182182
?: fundForDirectiveDeclarationElement(sqlFile, originalElementName)
183183
assertNotNull("Not Found Element [$originalElementName]", originalElement)
@@ -200,10 +200,9 @@ class SqlSymbolDocumentTestCase : DomaSqlTest() {
200200
val forDirective =
201201
forDirectiveBlock?.children?.find { it is SqlElForDirective } as? SqlElForDirective
202202
?: return null
203-
val fieldAccessExpr = forDirective.elExprList[1] as? SqlElFieldAccessExpr
204-
if (fieldAccessExpr == null) {
205-
return forDirective.elExprList.firstOrNull { it.text == searchElementName }
206-
}
203+
val fieldAccessExpr =
204+
forDirective.elExprList[1] as? SqlElFieldAccessExpr
205+
?: return forDirective.elExprList.firstOrNull { it.text == searchElementName }
207206

208207
return fieldAccessExpr.accessElements.firstOrNull { it?.text == searchElementName }
209208
}

0 commit comments

Comments
 (0)