Skip to content

Commit 371c551

Browse files
committed
Refactor directory structure handling in DomaSqlTest and update resource file paths
1 parent 803007f commit 371c551

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ fun findDaoMethod(
7676
.trim('.')
7777

7878
val daoJavaFile = project.findFile(daoFile)
79-
findDaoClass(module, daoClassName)?.let { daoClass ->
80-
val daoMethod =
81-
// TODO Support Kotlin Project
82-
when (daoJavaFile) {
83-
is PsiJavaFile -> findUseSqlDaoMethod(daoJavaFile, methodName)
84-
else -> null
85-
}
86-
return daoMethod
87-
}
79+
val paramParameter = CommonPathParameter(module)
80+
findDaoClass(module, paramParameter.isTest(originalFile.virtualFile), daoClassName)
81+
?.let { daoClass ->
82+
val daoMethod =
83+
// TODO Support Kotlin Project
84+
when (daoJavaFile) {
85+
is PsiJavaFile -> findUseSqlDaoMethod(daoJavaFile, methodName)
86+
else -> null
87+
}
88+
return daoMethod
89+
}
8890
} else {
8991
val fileType = getExtension(daoFile.fileType.name)
9092
val jarRootPath = virtualFile.path.substringBefore("jar!").plus("jar!")
@@ -164,8 +166,9 @@ private fun searchDaoFile(
164166

165167
private fun findDaoClass(
166168
module: Module,
169+
includeTest: Boolean,
167170
daoClassName: String,
168-
): PsiClass? = module.getJavaClazz(true, daoClassName)
171+
): PsiClass? = module.getJavaClazz(includeTest, daoClassName)
169172

170173
/**
171174
* Generate Dao deployment path from SQL file path

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

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import com.intellij.openapi.vfs.VirtualFile
2828
import com.intellij.psi.PsiClass
2929
import com.intellij.testFramework.PsiTestUtil
3030
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase
31+
import org.domaframework.doma.intellij.common.RESOURCES_META_INF_PATH
3132
import org.domaframework.doma.intellij.extension.getResourcesSQLFile
3233
import org.jetbrains.jps.model.java.JavaResourceRootType
3334
import org.jetbrains.jps.model.java.JavaSourceRootType
@@ -37,7 +38,8 @@ import java.io.File
3738
@Ignore
3839
open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
3940
protected val packagePath = "doma/example"
40-
private val resourceRoot = "main/resources"
41+
private val sourceRoot = "java"
42+
private val resourceRoot = "resources"
4143

4244
override fun getTestDataPath(): String = "src/test/testData/src/main/"
4345

@@ -119,9 +121,21 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
119121
}
120122

121123
private fun setDirectoryRoot() {
124+
WriteAction.runAndWait<RuntimeException> {
125+
ModuleRootModificationUtil.updateModel(myFixture.module) { model ->
126+
val iterator = model.contentEntries.iterator()
127+
while (iterator.hasNext()) {
128+
val entry = iterator.next()
129+
if (entry.file == null || entry.file?.name == "src") {
130+
model.removeContentEntry(entry)
131+
}
132+
}
133+
}
134+
}
135+
122136
val mainDir = myFixture.tempDirFixture.findOrCreateDir("main")
123-
val javaDir = myFixture.tempDirFixture.findOrCreateDir("main/java")
124-
val resourcesDir = myFixture.tempDirFixture.findOrCreateDir(resourceRoot)
137+
val javaDir = myFixture.tempDirFixture.findOrCreateDir("main/$sourceRoot")
138+
val resourcesDir = myFixture.tempDirFixture.findOrCreateDir("main/$resourceRoot")
125139
WriteAction.runAndWait<RuntimeException> {
126140
ModuleRootModificationUtil.updateModel(myFixture.module) { model ->
127141
val contentEntry = model.addContentEntry(mainDir)
@@ -133,36 +147,36 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
133147

134148
fun addDaoJavaFile(vararg fileNames: String) {
135149
for (fileName in fileNames) {
136-
val file = File("$testDataPath/java/$packagePath/dao/$fileName")
150+
val file = File("$testDataPath/$sourceRoot/$packagePath/dao/$fileName")
137151
myFixture.addFileToProject(
138-
"main/java/$packagePath/dao/$fileName",
152+
"main/$sourceRoot/$packagePath/dao/$fileName",
139153
file.readText(),
140154
)
141155
}
142156
}
143157

144158
private fun addEntityJavaFile(fileName: String) {
145-
val file = File("$testDataPath/java/$packagePath/entity/$fileName")
159+
val file = File("$testDataPath/$sourceRoot/$packagePath/entity/$fileName")
146160
myFixture.addFileToProject(
147-
"main/java/$packagePath/entity/$fileName",
161+
"main/$sourceRoot/$packagePath/entity/$fileName",
148162
file.readText(),
149163
)
150164
}
151165

152166
fun addResourceEmptyFile(vararg sqlFileNames: String) {
153167
for (sqlFileName in sqlFileNames) {
154168
myFixture.addFileToProject(
155-
"$resourceRoot/META-INF/$packagePath/dao/$sqlFileName",
169+
"main/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlFileName",
156170
"",
157171
)
158172
}
159173
}
160174

161175
fun addSqlFile(vararg sqlNames: String) {
162176
for (sqlName in sqlNames) {
163-
val file = File("$testDataPath/resources/META-INF/$packagePath/dao/$sqlName")
177+
val file = File("$testDataPath/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlName")
164178
myFixture.addFileToProject(
165-
"$resourceRoot/META-INF/$packagePath/dao/$sqlName",
179+
"main/$resourceRoot/$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlName",
166180
file.readText(),
167181
)
168182
}
@@ -171,7 +185,7 @@ open class DomaSqlTest : LightJavaCodeInsightFixtureTestCase() {
171185
fun findSqlFile(sqlName: String): VirtualFile? {
172186
val module = myFixture.module
173187
return module?.getResourcesSQLFile(
174-
"$packagePath/dao/$sqlName",
188+
"$RESOURCES_META_INF_PATH/$packagePath/dao/$sqlName",
175189
false,
176190
)
177191
}

0 commit comments

Comments
 (0)