Skip to content

Commit ca8a0d5

Browse files
committed
Add factory parameter and return type test DAOs with validation errors
1 parent 868a1e2 commit ca8a0d5

File tree

5 files changed

+107
-8
lines changed

5 files changed

+107
-8
lines changed

src/test/kotlin/org/domaframework/doma/intellij/inspection/dao/AnnotationParamTypeCheckInspectionTest.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,14 @@ import org.domaframework.doma.intellij.inspection.dao.inspector.DaoMethodParamTy
2424
class AnnotationParamTypeCheckInspectionTest : DomaSqlTest() {
2525
private val testDaoNames =
2626
listOf(
27+
"SelectParamTestDao",
2728
"InsertUpdateDeleteParamTestDao",
2829
"BatchInsertUpdateDeleteParamTestDao",
2930
"MultiInsertParamTestDao",
3031
"ProcedureParamTestDao",
3132
"ScriptParamTestDao",
3233
"SqlProcessorParamTestDao",
33-
"SelectParamTestDao",
34+
"FactoryParamTestDao",
3435
)
3536
private val daoPackage = "inspection/paramtype"
3637

@@ -80,4 +81,9 @@ class AnnotationParamTypeCheckInspectionTest : DomaSqlTest() {
8081
val dao = findDaoClass("$daoPackage.SqlProcessorParamTestDao")
8182
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
8283
}
84+
85+
fun testFactoryParam() {
86+
val dao = findDaoClass("$daoPackage.FactoryParamTestDao")
87+
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
88+
}
8389
}

src/test/kotlin/org/domaframework/doma/intellij/inspection/dao/AnnotationReturnTypeCheckInspectionTest.kt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class AnnotationReturnTypeCheckInspectionTest : DomaSqlTest() {
3131
"SqlProcessorReturnTypeTestDao",
3232
"ProcedureReturnTypeTestDao",
3333
"FunctionReturnTypeTestDao",
34+
"FactoryReturnTypeTestDao",
3435
)
3536
private val daoPackage = "inspection/returntype"
3637

@@ -52,33 +53,38 @@ class AnnotationReturnTypeCheckInspectionTest : DomaSqlTest() {
5253
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
5354
}
5455

55-
fun testUpdateAnnotationReturnTypeCheckProcessor() {
56+
fun testUpdateReturnTypeCheckProcessor() {
5657
val dao = findDaoClass("$daoPackage.UpdateReturnTypeTestDao")
5758
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
5859
}
5960

60-
fun testBatchAnnotationReturnTypeCheckProcessor() {
61+
fun testBatchReturnTypeCheckProcessor() {
6162
val dao = findDaoClass("$daoPackage.BatchReturnTypeTestDao")
6263
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
6364
}
6465

65-
fun testMultiInsertAnnotationReturnTypeCheckProcessor() {
66+
fun testMultiInsertReturnTypeCheckProcessor() {
6667
val dao = findDaoClass("$daoPackage.MultiInsertReturnTypeTestDao")
6768
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
6869
}
6970

70-
fun testSqlProcessorAnnotationReturnTypeCheckProcessor() {
71+
fun testSqlProcessorReturnTypeCheckProcessor() {
7172
val dao = findDaoClass("$daoPackage.SqlProcessorReturnTypeTestDao")
7273
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
7374
}
7475

75-
fun testProcedureAnnotationReturnTypeCheckProcessor() {
76+
fun testProcedureReturnTypeCheckProcessor() {
7677
val dao = findDaoClass("$daoPackage.ProcedureReturnTypeTestDao")
7778
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
7879
}
7980

80-
fun testFunctionAnnotationReturnTypeCheckProcessor() {
81+
fun testFunctionReturnTypeCheckProcessor() {
8182
val dao = findDaoClass("$daoPackage.FunctionReturnTypeTestDao")
8283
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
8384
}
85+
86+
fun testFactoryReturnTypeCheckProcessor() {
87+
val dao = findDaoClass("$daoPackage.FactoryReturnTypeTestDao")
88+
myFixture.testHighlighting(false, false, false, dao.containingFile.virtualFile)
89+
}
8490
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package doma.example.dao.inspection.paramtype;
2+
3+
import org.seasar.doma.*;
4+
import java.sql.*;
5+
import java.util.List;
6+
7+
@Dao
8+
public interface FactoryParamTestDao {
9+
10+
@ArrayFactory(typeName = "integer")
11+
Array createIntegerArray(Integer[] elements);
12+
13+
@ArrayFactory(typeName = "integer")
14+
Array <error descr="The number of parameters must be one">create</error>();
15+
16+
@ArrayFactory(typeName = "text")
17+
Array createString2DArray(String[][] elements);
18+
19+
@ArrayFactory(typeName = "text")
20+
Array createStringList(List<String> <error descr="The parameter type must be an array type">elements</error>);
21+
22+
@BlobFactory
23+
Blob createBlob();
24+
25+
@BlobFactory
26+
Blob <error descr="The number of parameters must be zero">createBlobWithParam</error>(Integer id);
27+
28+
@ClobFactory
29+
Clob createClob();
30+
31+
@ClobFactory
32+
Clob <error descr="The number of parameters must be zero">createClobWithParam</error>(Integer id);
33+
34+
@NClobFactory
35+
NClob createNClob();
36+
37+
@NClobFactory
38+
NClob <error descr="The number of parameters must be zero">createNClobWithParam</error>(Integer id);
39+
40+
@SQLXMLFactory
41+
SQLXML createSQLXML();
42+
43+
@SQLXMLFactory
44+
SQLXML <error descr="The number of parameters must be zero">createSQLXMLWithParam</error>(Integer id);
45+
}

src/test/testData/src/main/java/doma/example/dao/inspection/paramtype/InsertUpdateDeleteParamTestDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface InsertUpdateDeleteParamTestDao {
1414
int insertEntity(Packet packet);
1515

1616
@Insert
17-
int insertPrimitive(Integer <error descr="The parameter type must be an entity class">id</error>);
17+
int insertPrimitive(Integer <error descr="The parameter type must be an entity">id</error>);
1818

1919
@Update
2020
int <error descr="The number of parameters must be one">updateNoParams</error>();
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package doma.example.dao.inspection.returntype;
2+
3+
import org.seasar.doma.*;
4+
import java.sql.*;
5+
import java.util.List;
6+
7+
@Dao
8+
public interface FactoryReturnTypeTestDao {
9+
10+
@ArrayFactory(typeName = "integer")
11+
Array createIntegerArray(Integer[] elements);
12+
13+
@ArrayFactory(typeName = "text")
14+
Array createString2DArray(String[][] elements);
15+
16+
@ArrayFactory(typeName = "text")
17+
List<String> <error descr="The return type must be \"java.sql.Array\"">createStringList</error>(Integer[] elements);
18+
19+
@BlobFactory
20+
Blob createBlob();
21+
22+
@BlobFactory
23+
Integer <error descr="The return type must be \"java.sql.Blob\"">createBlobWithInteger</error>();
24+
25+
@ClobFactory
26+
Clob createClob();
27+
28+
@ClobFactory
29+
Integer <error descr="The return type must be \"java.sql.Clob\"">createClobWithInteger</error>();
30+
31+
@NClobFactory
32+
NClob createNClob();
33+
34+
@NClobFactory
35+
Integer <error descr="The return type must be \"java.sql.NClob\"">createNClobWithInteger</error>();
36+
37+
@SQLXMLFactory
38+
SQLXML createSQLXML();
39+
40+
@SQLXMLFactory
41+
Integer <error descr="The return type must be \"java.sql.SQLXML\"">createSQLXMLWithInteger</error>();
42+
}

0 commit comments

Comments
 (0)