Skip to content

Commit 81aafdf

Browse files
committed
Add unit tests on SqlxmlTypeHandlerTest
See #1221
1 parent 9829703 commit 81aafdf

File tree

1 file changed

+75
-1
lines changed

1 file changed

+75
-1
lines changed

src/test/java/org/apache/ibatis/type/SqlxmlTypeHandlerTest.java

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717
package org.apache.ibatis.type;
1818

1919
import static org.junit.Assert.*;
20+
import static org.mockito.Mockito.verify;
21+
import static org.mockito.Mockito.when;
2022

2123
import java.io.Reader;
2224
import java.nio.file.Paths;
2325
import java.sql.Connection;
26+
import java.sql.SQLXML;
2427
import java.util.Collections;
2528

2629
import org.apache.ibatis.annotations.Insert;
@@ -40,15 +43,23 @@
4043
import org.junit.Test;
4144
import org.junit.experimental.categories.Category;
4245

46+
import org.mockito.Mock;
4347
import ru.yandex.qatools.embed.postgresql.EmbeddedPostgres;
4448
import ru.yandex.qatools.embed.postgresql.util.SocketUtil;
4549

4650
@Category(EmbeddedPostgresqlTests.class)
47-
public class SqlxmlTypeHandlerTest {
51+
public class SqlxmlTypeHandlerTest extends BaseTypeHandlerTest {
52+
private static final TypeHandler<String> TYPE_HANDLER = new SqlxmlTypeHandler();
4853
private static final EmbeddedPostgres postgres = new EmbeddedPostgres();
4954

5055
private static SqlSessionFactory sqlSessionFactory;
5156

57+
@Mock
58+
private SQLXML sqlxml;
59+
60+
@Mock
61+
private Connection connection;
62+
5263
@BeforeClass
5364
public static void setUp() throws Exception {
5465
// Launch PostgreSQL server. Download / unarchive if necessary.
@@ -79,6 +90,69 @@ public static void tearDown() {
7990
postgres.stop();
8091
}
8192

93+
@Override
94+
@Test
95+
public void shouldSetParameter() throws Exception {
96+
when(connection.createSQLXML()).thenReturn(sqlxml);
97+
when(ps.getConnection()).thenReturn(connection);
98+
String xml = "<message>test</message>";
99+
TYPE_HANDLER.setParameter(ps, 1, xml, null);
100+
verify(ps).setSQLXML(1, sqlxml);
101+
verify(sqlxml).setString(xml);
102+
verify(sqlxml).free();
103+
}
104+
105+
@Override
106+
@Test
107+
public void shouldGetResultFromResultSetByName() throws Exception {
108+
String xml = "<message>test</message>";
109+
when(sqlxml.getString()).thenReturn(xml);
110+
when(rs.getSQLXML("column")).thenReturn(sqlxml);
111+
assertEquals(xml, TYPE_HANDLER.getResult(rs, "column"));
112+
verify(sqlxml).free();
113+
}
114+
115+
@Override
116+
@Test
117+
public void shouldGetResultNullFromResultSetByName() throws Exception {
118+
when(rs.getSQLXML("column")).thenReturn(null);
119+
assertNull(TYPE_HANDLER.getResult(rs, "column"));
120+
}
121+
122+
@Override
123+
@Test
124+
public void shouldGetResultFromResultSetByPosition() throws Exception {
125+
String xml = "<message>test</message>";
126+
when(sqlxml.getString()).thenReturn(xml);
127+
when(rs.getSQLXML(1)).thenReturn(sqlxml);
128+
assertEquals(xml, TYPE_HANDLER.getResult(rs, 1));
129+
verify(sqlxml).free();
130+
}
131+
132+
@Override
133+
@Test
134+
public void shouldGetResultNullFromResultSetByPosition() throws Exception {
135+
when(rs.getSQLXML(1)).thenReturn(null);
136+
assertNull(TYPE_HANDLER.getResult(rs, 1));
137+
}
138+
139+
@Override
140+
@Test
141+
public void shouldGetResultFromCallableStatement() throws Exception {
142+
String xml = "<message>test</message>";
143+
when(sqlxml.getString()).thenReturn(xml);
144+
when(cs.getSQLXML(1)).thenReturn(sqlxml);
145+
assertEquals(xml, TYPE_HANDLER.getResult(cs, 1));
146+
verify(sqlxml).free();
147+
}
148+
149+
@Override
150+
@Test
151+
public void shouldGetResultNullFromCallableStatement() throws Exception {
152+
when(cs.getSQLXML(1)).thenReturn(null);
153+
assertNull(TYPE_HANDLER.getResult(cs, 1));
154+
}
155+
82156
@Test
83157
public void shouldReturnXmlAsString() throws Exception {
84158
SqlSession session = sqlSessionFactory.openSession();

0 commit comments

Comments
 (0)