8000 Add some more unit-tests · utPLSQL/utPLSQL-java-api@de3311c · GitHub
[go: up one dir, main page]

Skip to content

Commit de3311c

Browse files
committed
Add some more unit-tests
1 parent 1bd0f48 commit de3311c

File tree

1 file changed

+102
-29
lines changed

1 file changed

+102
-29
lines changed
Lines changed: 102 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.utplsql.api.db;
22

33
import oracle.jdbc.OracleConnection;
4+
import org.junit.jupiter.api.Nested;
45
import org.junit.jupiter.api.Test;
56

67
import java.sql.CallableStatement;
@@ -11,47 +12,119 @@
1112

1213
public class DynamicParameterListTest {
1314

14-
@Test
15-
void call_with_three_different_types() throws SQLException {
15+
@Nested
16+
class single_parameters {
17+
@Test
18+
void can_add_string() throws SQLException {
19+
CallableStatement stmt = mock(CallableStatement.class);
1620

17-
CallableStatement mockedStatement = mock(CallableStatement.class);
18-
OracleConnection mockedConn = mock(OracleConnection.class);
21+
DynamicParameterList paramList = DynamicParameterList.builder()
22+
.add("a_param", "MyString")
23+
.build();
1924

20-
Object[] numArr = new Object[]{1, 2};
25+
assertEquals("a_param => ?", paramList.getSql());
2126

22-
DynamicParameterList parameterList = DynamicParameterList.builder()
23-
.add("a_object_owner", "MyOwner")
24-
.add("a_num_param", 123)
25-
.add("a_num_array", numArr, "MY_NUM_ARR", mockedConn)
26-
.build();
27+
paramList.setParamsStartWithIndex(stmt, 5);
28+
verify(stmt).setString(5, "MyString");
29+
}
2730

28-
assertEquals("a_object_owner => ?, a_num_param => ?, a_num_array => ?", parameterList.getSql());
31+
@Test
32+
void can_add_int() throws SQLException {
33+
CallableStatement stmt = mock(CallableStatement.class);
2934

30-
parameterList.setParamsStartWithIndex(mockedStatement, 5);
35+
DynamicParameterList paramList = DynamicParameterList.builder()
36+
.add("a_param", 1234)
37+
.build();
3138

32-
verify(mockedStatement).setString(5, "MyOwner");
33-
verify(mockedStatement).setInt(6, 123);
34-
verify(mockedConn).createOracleArray("MY_NUM_ARR", numArr);
35-
verify(mockedStatement).setArray(7, null);
39+
assertEquals("a_param => ?", paramList.getSql());
40+
41+
paramList.setParamsStartWithIndex(stmt, 10);
42+
verify(stmt).setInt(10, 1234);
43+
}
44+
45+
@Test
46+
void can_add_array() throws SQLException {
47+
CallableStatement stmt = mock(CallableStatement.class);
48+
OracleConnection conn = mock(OracleConnection.class);
49+
50+
Object[] numArr = new Object[]{1, 2};
51+
52+
DynamicParameterList paramList = DynamicParameterList.builder()
53+
.add("a_param", numArr, "MY_TYPE", conn)
54+
.build();
55+
56+
assertEquals("a_param => ?", paramList.getSql());
57+
58+
paramList.setParamsStartWithIndex(stmt, 3);
59+
verify(conn).createOracleArray("MY_TYPE", numArr);
60+
verify(stmt).setArray(3, null);
61+
}
3662
}
3763

38-
@Test
39-
void when_not_accept_empty_filter_empty_elements() throws SQLException {
64+
@Nested
65+
class mutliple_parameters {
66+
67+
@Test
68+
void several_parameters_are_issued_in_the_correct_order() throws SQLException {
69+
CallableStatement mockedStatement = mock(CallableStatement.class);
70+
71+
DynamicParameterList parameterList = DynamicParameterList.builder()
72+
.add("a_param1", "Param1")
73+
.add("a_param2", "Param2")
74+
.add("a_param3", "Param3")
75+
.build();
76+
77+
assertEquals("a_param1 => ?, a_param2 => ?, a_param3 => ?", parameterList.getSql());
78+
79+
parameterList.setParamsStartWithIndex(mockedStatement, 10);
80+
81+
verify(mockedStatement).setString(10, "Param1");
82+
verify(mockedStatement).setString(11, "Param2");
83+
verify(mockedStatement).setString(12, "Param3");
84+
}
85+
86+
@Test
87+
void call_with_three_different_types() throws SQLException {
88+
89+
CallableStatement mockedStatement = mock(CallableStatement.class);
90+
OracleConnection mockedConn = mock(OracleConnection.class);
91+
92+
Object[] numArr = new Object[]{1, 2};
93+
94+
DynamicParameterList parameterList = DynamicParameterList.builder()
95+
.add("a_object_owner", "MyOwner")
96+
.add("a_num_param", 123)
97+
.add("a_num_array", numArr, "MY_NUM_ARR", mockedConn)
98+
.build();
99+
100+
assertEquals("a_object_owner => ?, a_num_param => ?, a_num_array => ?", parameterList.getSql());
101+
102+
parameterList.setParamsStartWithIndex(mockedStatement, 5);
103+
104+
verify(mockedStatement).setString(5, "MyOwner");
105+
verify(mockedStatement).setInt(6, 123);
106+
verify(mockedConn).createOracleArray("MY_NUM_ARR", numArr);
107+
verify(mockedStatement).setArray(7, null);
108+
}
109+
110+
@Test
111+
void when_not_accept_empty_filter_empty_elements() throws SQLException {
40112

41-
CallableStatement mockedStatement = mock(CallableStatement.class);
42-
OracleConnection mockedConn = mock(OracleConnection.class);
113+
CallableStatement mockedStatement = mock(CallableStatement.class);
114+
OracleConnection mockedConn = mock(OracleConnection.class);
43115

44-
DynamicParameterList parameterList = DynamicParameterList.builder()
45-
.addIfNotEmpty("a_object_owner", (String)null)
46-
.addIfNotEmpty("a_num_param", (Integer)null)
47-
.addIfNotEmpty("a_num_array", new Object[]{}, "MY_NUM_ARR", mockedConn)
48-
.build();
116+
DynamicParameterList parameterList = DynamicParameterList.builder()
117+
.addIfNotEmpty("a_object_owner", (String) null)
118+
.addIfNotEmpty("a_num_param", (Integer) null)
119+
.addIfNotEmpty("a_num_array", new Object[]{}, "MY_NUM_ARR", mockedConn)
120+
.build();
49121

50-
assertEquals("", parameterList.getSql());
122+
assertEquals("", parameterList.getSql());
51123

52-
parameterList.setParamsStartWithIndex(mockedStatement, 2);
124+
parameterList.setParamsStartWithIndex(mockedStatement, 2);
53125

54-
verifyNoMoreInteractions(mockedStatement);
55-
verifyNoMoreInteractions(mockedConn);
126+
verifyNoMoreInteractions(mockedStatement);
127+
verifyNoMoreInteractions(mockedConn);
128+
}
56129
}
57130
}

0 commit comments

Comments
 (0)
0