Skip to content

Commit 29f78f0

Browse files
committed
Add tests and refactor for SourceNameDao SQL file generation and navigation
1 parent 925f5d4 commit 29f78f0

File tree

10 files changed

+142
-57
lines changed

10 files changed

+142
-57
lines changed

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,22 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
207207

208208
fun addSqlFile(vararg sqlNames: String) {
209209
for (sqlName in sqlNames) {
210-
val file = File("$testDataPath/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlName")
211-
myFixture.addFileToProject(
212-
"main/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlName",
213-
file.readText(),
214-
)
210+
addOtherPackageSqlFile("$packagePath/dao", sqlName)
215211
}
216212
}
217213

214+
fun addOtherPackageSqlFile(
215+
packageName: String,
216+
sqlName: String,
217+
) {
218+
val sqlPath = "$resourceRoot/$RESOURCES_META_INF_PATH/$packageName/$sqlName"
219+
val file = File("$testDataPath/$sqlPath")
220+
myFixture.addFileToProject(
221+
"main/$sqlPath",
222+
file.readText(),
223+
)
224+
}
225+
218226
fun findSqlFile(sqlName: String): VirtualFile? = findSqlFile(packagePath, sqlName)
219227

220228
fun findSqlFile(

src/test/kotlin/org/domaframework/doma/intellij/gutteraction/dao/DaoGutterActionTest.kt

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.GutterMark
2020
import com.intellij.codeInsight.daemon.LineMarkerInfo
2121
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
2222
import com.intellij.openapi.fileEditor.FileEditorManager
23+
import com.intellij.psi.PsiClass
2324
import com.intellij.psi.PsiElement
2425
import org.domaframework.doma.intellij.DomaSqlTest
2526
import org.domaframework.doma.intellij.bundle.MessageBundle
@@ -72,76 +73,86 @@ class DaoGutterActionTest : DomaSqlTest() {
7273
"$packageName/BatchUpdateGutterTestDao/existsSQLFile3.sql",
7374
"$packageName/BatchDeleteGutterTestDao/existsSQLFile3.sql",
7475
)
76+
77+
addOtherPackageJavaFile("doma/java/dao", "SourceNameDao.java")
78+
addOtherPackageSqlFile("doma/java/dao", "SourceNameDao/existsSQLFile1.sql")
7579
}
7680

7781
fun testSelectDisplayGutter() {
7882
val daoName = "$packageName.SelectGutterTestDao"
7983
val total = 2
80-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
84+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
8185
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
8286
}
8387

8488
fun testInsertDisplayGutter() {
8589
val daoName = "$packageName.InsertGutterTestDao"
8690
val total = 2
87-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
91+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
8892
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
8993
}
9094

9195
fun testUpdateDisplayGutter() {
9296
val daoName = "$packageName.UpdateGutterTestDao"
9397
val total = 2
94-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
98+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
9599
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
96100
}
97101

98102
fun testDeleteDisplayGutter() {
99103
val daoName = "$packageName.DeleteGutterTestDao"
100104
val total = 1
101-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
105+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
102106
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
103107
}
104108

105109
fun testBatchInsertDisplayGutter() {
106110
val daoName = "$packageName.BatchInsertGutterTestDao"
107111
val total = 3
108-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
112+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
109113
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
110114
}
111115

112116
fun testBatchUpdateDisplayGutter() {
113117
val daoName = "$packageName.BatchUpdateGutterTestDao"
114118
val total = 3
115-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
119+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
116120
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
117121
}
118122

119123
fun testBatchDeleteDisplayGutter() {
120124
val daoName = "$packageName.BatchDeleteGutterTestDao"
121125
val total = 2
122-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
126+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
123127
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
124128
}
125129

126130
fun testScriptDisplayGutter() {
127131
val daoName = "$packageName.ScriptGutterTestDao"
128132
val total = 2
129-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
133+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
130134
gutterIconNavigation("existsSQLFile1.script", targetGutter)
131135
}
132136

133137
fun testSqlProcessorDisplayGutter() {
134138
val daoName = "$packageName.SqlProcessorGutterTestDao"
135139
val total = 2
136-
val targetGutter = gutterIconsDisplayedTest(daoName, total)
140+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(daoName), total)
141+
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
142+
}
143+
144+
fun testSourceDirectoryDisplayGutter() {
145+
val originalPackageName = "doma.java.dao"
146+
val daoName = "SourceNameDao"
147+
val total = 1
148+
val targetGutter = gutterIconsDisplayedTest(findDaoClass(originalPackageName, daoName), total)
137149
gutterIconNavigation("existsSQLFile1.sql", targetGutter)
138150
}
139151

140152
private fun gutterIconsDisplayedTest(
141-
daoName: String,
153+
dao: PsiClass,
142154
total: Int,
143155
): LineMarkerInfo<*>? {
144-
val dao = findDaoClass(daoName)
145156
val targetElementNames = listOf("existsSQLFile1", "existsSQLFile2", "existsSQLFile3")
146157

147158
myFixture.configureFromExistingVirtualFile(dao.containingFile.virtualFile)

src/test/kotlin/org/domaframework/doma/intellij/gutteraction/dao/DaoJumpActionTest.kt

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent
2424
import com.intellij.openapi.actionSystem.CommonDataKeys
2525
import com.intellij.openapi.actionSystem.DataContext
2626
import com.intellij.openapi.fileEditor.FileEditorManager
27+
import com.intellij.psi.PsiClass
2728
import org.domaframework.doma.intellij.DomaSqlTest
2829
import java.awt.event.InputEvent
2930
import java.awt.event.MouseEvent
@@ -83,152 +84,162 @@ class DaoJumpActionTest : DomaSqlTest() {
8384
"$packageName/ScriptGutterTestDao/existsSQLFile2.script",
8485
"$packageName/SqlProcessorGutterTestDao/existsSQLFile2.sql",
8586
)
87+
88+
addOtherPackageJavaFile("doma/java/dao", "SourceNameDao.java")
89+
addOtherPackageSqlFile("doma/java/dao", "SourceNameDao/jumpToDaoFile.sql")
8690
}
8791

8892
fun testSelectJumpToSqlAction() {
8993
val daoName = "$packageName.SelectGutterTestDao"
9094
val sqlFileName = "existsSQLFile1.sql"
91-
val action: AnAction = getActionTest(daoName)
95+
val action: AnAction = getActionTest(findDaoClass(daoName))
9296
isDisplayedActionTest(action)
9397
jumpToSqlTest(action, sqlFileName)
9498
}
9599

96100
fun testInsertJumpToSqlAction() {
97101
val daoName = "$packageName.InsertGutterTestDao"
98102
val sqlFileName = "existsSQLFile2.sql"
99-
val action: AnAction = getActionTest(daoName)
103+
val action: AnAction = getActionTest(findDaoClass(daoName))
100104
isDisplayedActionTest(action)
101105
jumpToSqlTest(action, sqlFileName)
102106
}
103107

104108
fun testUpdateJumpToSqlAction() {
105109
val daoName = "$packageName.UpdateGutterTestDao"
106110
val sqlFileName = "existsSQLFile1.sql"
107-
val action: AnAction = getActionTest(daoName)
111+
val action: AnAction = getActionTest(findDaoClass(daoName))
108112
isDisplayedActionTest(action)
109113
jumpToSqlTest(action, sqlFileName)
110114
}
111115

112116
fun testDeleteJumpToSqlAction() {
113117
val daoName = "$packageName.DeleteGutterTestDao"
114118
val sqlFileName = "existsSQLFile1.sql"
115-
val action: AnAction = getActionTest(daoName)
119+
val action: AnAction = getActionTest(findDaoClass(daoName))
116120
isDisplayedActionTest(action)
117121
jumpToSqlTest(action, sqlFileName)
118122
}
119123

120124
fun testBatchInsertJumpToSqlAction() {
121125
val daoName = "$packageName.BatchInsertGutterTestDao"
122126
val sqlFileName = "existsSQLFile2.sql"
123-
val action: AnAction = getActionTest(daoName)
127+
val action: AnAction = getActionTest(findDaoClass(daoName))
124128
isDisplayedActionTest(action)
125129
jumpToSqlTest(action, sqlFileName)
126130
}
127131

128132
fun testBatchUpdateJumpToSqlAction() {
129133
val daoName = "$packageName.BatchUpdateGutterTestDao"
130134
val sqlFileName = "existsSQLFile2.sql"
131-
val action: AnAction = getActionTest(daoName)
135+
val action: AnAction = getActionTest(findDaoClass(daoName))
132136
isDisplayedActionTest(action)
133137
jumpToSqlTest(action, sqlFileName)
134138
}
135139

136140
fun testBatchDeleteJumpToSqlAction() {
137141
val daoName = "$packageName.BatchDeleteGutterTestDao"
138142
val sqlFileName = "existsSQLFile2.sql"
139-
val action: AnAction = getActionTest(daoName)
143+
val action: AnAction = getActionTest(findDaoClass(daoName))
140144
isDisplayedActionTest(action)
141145
jumpToSqlTest(action, sqlFileName)
142146
}
143147

144148
fun testScriptJumpToSqlAction() {
145149
val daoName = "$packageName.ScriptGutterTestDao"
146150
val sqlFileName = "existsSQLFile2.script"
147-
val action: AnAction = getActionTest(daoName)
151+
val action: AnAction = getActionTest(findDaoClass(daoName))
148152
isDisplayedActionTest(action)
149153
jumpToSqlTest(action, sqlFileName)
150154
}
151155

152156
fun testSqlProcessorJumpToSqlAction() {
153157
val daoName = "$packageName.SqlProcessorGutterTestDao"
154158
val sqlFileName = "existsSQLFile1.sql"
155-
val action: AnAction = getActionTest(daoName)
159+
val action: AnAction = getActionTest(findDaoClass(daoName))
160+
isDisplayedActionTest(action)
161+
jumpToSqlTest(action, sqlFileName)
162+
}
163+
164+
fun testSourceNameJumpToSql() {
165+
val daoName = "SourceNameDao"
166+
val sqlFileName = "jumpToDaoFile.sql"
167+
val action: AnAction = getActionTest(findDaoClass("doma.java.dao", daoName))
156168
isDisplayedActionTest(action)
157169
jumpToSqlTest(action, sqlFileName)
158170
}
159171

160172
fun testSelectNotDisplayJumpToSql() {
161173
val daoName = "$packageName.SelectInvalidCaretTestDao"
162-
val action: AnAction = getActionTest(daoName)
174+
val action: AnAction = getActionTest(findDaoClass(daoName))
163175
isNotDisplayedActionTest(action)
164176
canSqlTest(action, "nonExistSQLFile.sql")
165177
}
166178

167179
fun testInsertNotDisplayJumpToSql() {
168180
val daoName = "$packageName.InsertInvalidCaretTestDao"
169-
val action: AnAction = getActionTest(daoName)
181+
val action: AnAction = getActionTest(findDaoClass(daoName))
170182
isNotDisplayedActionTest(action)
171183
canSqlTest(action, "nonExistSQLFileAndTemplateIncludedList.sql")
172184
}
173185

174186
fun testUpdateNotDisplayJumpToSql() {
175187
val daoName = "$packageName.UpdateInvalidCaretTestDao"
176-
val action: AnAction = getActionTest(daoName)
188+
val action: AnAction = getActionTest(findDaoClass(daoName))
177189
isNotDisplayedActionTest(action)
178190
canSqlTest(action, "nonRequireSQLFile.sql")
179191
}
180192

181193
fun testDeleteNotDisplayJumpToSql() {
182194
val daoName = "$packageName.DeleteInvalidCaretTestDao"
183-
val action: AnAction = getActionTest(daoName)
195+
val action: AnAction = getActionTest(findDaoClass(daoName))
184196
isNotDisplayedActionTest(action)
185197
canSqlTest(action, "nonRequireSQLFile.sql")
186198
}
187199

188200
fun testBatchInsertNotDisplayJumpToSql() {
189201
val daoName = "$packageName.BatchInsertInvalidCaretTestDao"
190-
val action: AnAction = getActionTest(daoName)
202+
val action: AnAction = getActionTest(findDaoClass(daoName))
191203
isNotDisplayedActionTest(action)
192204
canSqlTest(action, "nonExistSQLFileError.sql")
193205
}
194206

195207
fun testBatchUpdateNotDisplayJumpToSql() {
196208
val daoName = "$packageName.BatchUpdateInvalidCaretTestDao"
197-
val action: AnAction = getActionTest(daoName)
209+
val action: AnAction = getActionTest(findDaoClass(daoName))
198210
isNotDisplayedActionTest(action)
199211
canSqlTest(action, "nonExistSQLFileAndTemplateIncludedList.sql")
200212
}
201213

202214
fun testBatchDeleteNotDisplayJumpToSql() {
203215
val daoName = "$packageName.BatchDeleteInvalidCaretTestDao"
204-
val action: AnAction = getActionTest(daoName)
216+
val action: AnAction = getActionTest(findDaoClass(daoName))
205217
isNotDisplayedActionTest(action)
206218
canSqlTest(action, "nonRequireSQLFile.sql")
207219
}
208220

209221
fun testScriptNotDisplayJumpToSql() {
210222
val daoName = "$packageName.ScriptInvalidCaretTestDao"
211-
val action: AnAction = getActionTest(daoName)
223+
val action: AnAction = getActionTest(findDaoClass(daoName))
212224
isNotDisplayedActionTest(action)
213225
canSqlTest(action, "nonExistSQLFileAndTemplateIncludedList.script")
214226
}
215227

216228
fun testSqlProcessorNotDisplayJumpToSql() {
217229
val daoName = "$packageName.SqlProcessorInvalidCaretTestDao"
218-
val action: AnAction = getActionTest(daoName)
230+
val action: AnAction = getActionTest(findDaoClass(daoName))
219231
isNotDisplayedActionTest(action)
220232
canSqlTest(action, "nonExistSQLFile.sql")
221233
}
222234

223235
fun testSqlNotDisplayJumpToSql() {
224236
val daoName = "$packageName.InvalidCaretTestDao"
225-
val action: AnAction = getActionTest(daoName)
237+
val action: AnAction = getActionTest(findDaoClass(daoName))
226238
isNotDisplayedActionTest(action)
227239
canSqlTest(action, "nonExistSQLFile.sql")
228240
}
229241

230-
private fun getActionTest(daoName: String): AnAction {
231-
val dao = findDaoClass(daoName)
242+
private fun getActionTest(dao: PsiClass): AnAction {
232243
myFixture.configureFromExistingVirtualFile(dao.containingFile.virtualFile)
233244

234245
val action: AnAction = ActionManager.getInstance().getAction(actionId)

src/test/kotlin/org/domaframework/doma/intellij/gutteraction/sql/SqlGutterActionTest.kt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.GutterMark
2020
import com.intellij.codeInsight.daemon.LineMarkerInfo
2121
import com.intellij.codeInsight.daemon.RelatedItemLineMarkerInfo
2222
import com.intellij.openapi.fileEditor.FileEditorManager
23+
import com.intellij.openapi.vfs.VirtualFile
2324
import com.intellij.psi.PsiElement
2425
import org.domaframework.doma.intellij.DomaSqlTest
2526
import org.domaframework.doma.intellij.bundle.MessageBundle
@@ -38,29 +39,40 @@ class SqlGutterActionTest : DomaSqlTest() {
3839
"$packageName/JumpActionTestDao/jumpToDaoFile.sql",
3940
"$packageName/JumpActionTestDao/notDisplayGutterWithNonExistentDaoMethod.sql",
4041
)
42+
addOtherPackageJavaFile("doma/java/dao", "SourceNameDao.java")
43+
addOtherPackageSqlFile("doma/java/dao", "SourceNameDao/jumpToDaoFile.sql")
4144
}
4245

4346
fun testSqlDisplayGutter() {
4447
val sqlName = "$packageName/JumpActionTestDao/jumpToDaoFile.sql"
4548
val total = 1
46-
val targetGutter = gutterIconsDisplayedTest(sqlName, total)
49+
val targetGutter = gutterIconsDisplayedTest(findSqlFile(sqlName), total)
4750
gutterIconNavigation("JumpActionTestDao.java", targetGutter)
4851
}
4952

5053
fun testSqlNonDisplayGutter() {
5154
val sqlName = "$packageName/JumpActionTestDao/notDisplayGutterWithNonExistentDaoMethod.sql"
5255
val total = 0
53-
val targetGutter = gutterIconsDisplayedTest(sqlName, total)
56+
val targetGutter = gutterIconsDisplayedTest(findSqlFile(sqlName), total)
5457
assertNull("Gutter is displayed", targetGutter)
5558
}
5659

60+
fun testSourceDirectoryPackageGutter() {
61+
val packageName = "doma/java"
62+
val sqlName = "SourceNameDao/jumpToDaoFile.sql"
63+
val total = 1
64+
val targetGutter = gutterIconsDisplayedTest(findSqlFile(packageName, sqlName), total)
65+
gutterIconNavigation("SourceNameDao.java", targetGutter)
66+
}
67+
5768
private fun gutterIconsDisplayedTest(
58-
sqlName: String,
69+
sql: VirtualFile?,
5970
total: Int,
6071
): LineMarkerInfo<*>? {
61-
val sql = findSqlFile(sqlName)
62-
assertNotNull("Not Found SQL File", sql)
63-
if (sql == null) return null
72+
if (sql == null) {
73+
fail("Not Found SQL File")
74+
return null
75+
}
6476

6577
myFixture.configureFromExistingVirtualFile(sql)
6678
myFixture.doHighlighting()

0 commit comments

Comments
 (0)