|
17 | 17 | package org.apache.ibatis.type;
|
18 | 18 |
|
19 | 19 | import static org.junit.Assert.*;
|
| 20 | +import static org.mockito.Mockito.verify; |
| 21 | +import static org.mockito.Mockito.when; |
20 | 22 |
|
21 | 23 | import java.io.Reader;
|
22 | 24 | import java.nio.file.Paths;
|
23 | 25 | import java.sql.Connection;
|
| 26 | +import java.sql.SQLXML; |
24 | 27 | import java.util.Collections;
|
25 | 28 |
|
26 | 29 | import org.apache.ibatis.annotations.Insert;
|
|
40 | 43 | import org.junit.Test;
|
41 | 44 | import org.junit.experimental.categories.Category;
|
42 | 45 |
|
| 46 | +import org.mockito.Mock; |
43 | 47 | import ru.yandex.qatools.embed.postgresql.EmbeddedPostgres;
|
44 | 48 | import ru.yandex.qatools.embed.postgresql.util.SocketUtil;
|
45 | 49 |
|
46 | 50 | @Category(EmbeddedPostgresqlTests.class)
|
47 |
| -public class SqlxmlTypeHandlerTest { |
| 51 | +public class SqlxmlTypeHandlerTest extends BaseTypeHandlerTest { |
| 52 | + private static final TypeHandler<String> TYPE_HANDLER = new SqlxmlTypeHandler(); |
48 | 53 | private static final EmbeddedPostgres postgres = new EmbeddedPostgres();
|
49 | 54 |
|
50 | 55 | private static SqlSessionFactory sqlSessionFactory;
|
51 | 56 |
|
| 57 | + @Mock |
| 58 | + private SQLXML sqlxml; |
| 59 | + |
| 60 | + @Mock |
| 61 | + private Connection connection; |
| 62 | + |
52 | 63 | @BeforeClass
|
53 | 64 | public static void setUp() throws Exception {
|
54 | 65 | // Launch PostgreSQL server. Download / unarchive if necessary.
|
@@ -79,6 +90,69 @@ public static void tearDown() {
|
79 | 90 | postgres.stop();
|
80 | 91 | }
|
81 | 92 |
|
| 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 | + |
82 | 156 | @Test
|
83 | 157 | public void shouldReturnXmlAsString() throws Exception {
|
84 | 158 | SqlSession session = sqlSessionFactory.openSession();
|
|
0 commit comments