Skip to content

Commit 282e5d0

Browse files
committed
Add SimpleResultSet unit tests to cover SQLFeatureNotSupportedException
1 parent 09becdd commit 282e5d0

File tree

1 file changed

+225
-0
lines changed

1 file changed

+225
-0
lines changed
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
/**
2+
* This file is part of https://github.com/forcedotcom/datacloud-jdbc which is released under the
3+
* Apache 2.0 license. See https://github.com/forcedotcom/datacloud-jdbc/blob/main/LICENSE.txt
4+
*/
5+
package com.salesforce.datacloud.jdbc.resultset;
6+
7+
import static org.junit.jupiter.api.Assertions.assertThrows;
8+
9+
import java.io.InputStream;
10+
import java.io.Reader;
11+
import java.math.BigDecimal;
12+
import java.sql.Blob;
13+
import java.sql.Clob;
14+
import java.sql.NClob;
15+
import java.sql.Ref;
16+
import java.sql.ResultSet;
17+
import java.sql.RowId;
18+
import java.sql.SQLFeatureNotSupportedException;
19+
import java.sql.SQLXML;
20+
import org.junit.jupiter.api.Test;
21+
import org.mockito.Mockito;
22+
23+
class SimpleResultSetTest {
24+
25+
@Test
26+
public void shouldThrowUnsupportedError() {
27+
SimpleResultSet resultSet = Mockito.mock(SimpleResultSet.class, Mockito.CALLS_REAL_METHODS);
28+
29+
// Test methods from SimpleResultSet that throw SQLFeatureNotSupportedException
30+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::getCursorName);
31+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getBlob(1));
32+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getClob(1));
33+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getRef(1));
34+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getURL(1));
35+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getRowId(1));
36+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getSQLXML(1));
37+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getNString(1));
38+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getNCharacterStream(1));
39+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getAsciiStream(1));
40+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getUnicodeStream(1));
41+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getBinaryStream(1));
42+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getCharacterStream(1));
43+
44+
// Test methods from ForwardOnlyResultSet interface
45+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.setFetchDirection(ResultSet.FETCH_REVERSE));
46+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::isBeforeFirst);
47+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::isAfterLast);
48+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::isFirst);
49+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::isLast);
50+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::first);
51+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::last);
52+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.absolute(1));
53+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.relative(1));
54+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::previous);
55+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::beforeFirst);
56+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::afterLast);
57+
58+
// Test methods from ReadOnlyResultSet interface
59+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::rowUpdated);
60+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::rowInserted);
61+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::rowDeleted);
62+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::insertRow);
63+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::updateRow);
64+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::deleteRow);
65+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::cancelRowUpdates);
66+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::refreshRow);
67+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::moveToInsertRow);
68+
assertThrows(SQLFeatureNotSupportedException.class, resultSet::moveToCurrentRow);
69+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNull(1));
70+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBoolean(1, true));
71+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateByte(1, (byte) 1));
72+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateShort(1, (short) 1));
73+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateInt(1, 1));
74+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateLong(1, 1L));
75+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateFloat(1, 1.0f));
76+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateDouble(1, 1.0));
77+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBigDecimal(1, BigDecimal.ONE));
78+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateString(1, "test"));
79+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBytes(1, new byte[0]));
80+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateDate(1, new java.sql.Date(0)));
81+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateTime(1, new java.sql.Time(0)));
82+
assertThrows(
83+
SQLFeatureNotSupportedException.class, () -> resultSet.updateTimestamp(1, new java.sql.Timestamp(0)));
84+
assertThrows(
85+
SQLFeatureNotSupportedException.class,
86+
() -> resultSet.updateAsciiStream(1, Mockito.mock(InputStream.class), 1));
87+
assertThrows(
88+
SQLFeatureNotSupportedException.class,
89+
() -> resultSet.updateBinaryStream(1, Mockito.mock(InputStream.class), 1));
90+
assertThrows(
91+
SQLFeatureNotSupportedException.class,
92+
() -> resultSet.updateCharacterStream(1, Mockito.mock(Reader.class), 1));
93+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateObject(1, new Object(), 1));
94+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateObject(1, new Object()));
95+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNull("col"));
96+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBoolean("col", true));
97+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateByte("col", (byte) 1));
98+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateShort("col", (short) 1));
99+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateInt("col", 1));
100+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateLong("col", 1L));
101+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateFloat("col", 1.0f));
102+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateDouble("col", 1.0));
103+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBigDecimal("col", BigDecimal.ONE));
104+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateString("col", "test"));
105+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBytes("col", new byte[0]));
106+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateDate("col", new java.sql.Date(0)));
107+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateTime("col", new java.sql.Time(0)));
108+
assertThrows(
109+
SQLFeatureNotSupportedException.class,
110+
() -> resultSet.updateTimestamp("col", new java.sql.Timestamp(0)));
111+
assertThrows(
112+
SQLFeatureNotSupportedException.class,
113+
() -> resultSet.updateAsciiStream("col", Mockito.mock(InputStream.class), 1));
114+
assertThrows(
115+
SQLFeatureNotSupportedException.class,
116+
() -> resultSet.updateBinaryStream("col", Mockito.mock(InputStream.class), 1));
117+
assertThrows(
118+
SQLFeatureNotSupportedException.class,
119+
() -> resultSet.updateCharacterStream("col", Mockito.mock(Reader.class), 1));
120+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateObject("col", new Object(), 1));
121+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateObject("col", new Object()));
122+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateRef(1, Mockito.mock(Ref.class)));
123+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateRef("col", Mockito.mock(Ref.class)));
124+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateBlob(1, Mockito.mock(Blob.class)));
125+
assertThrows(
126+
SQLFeatureNotSupportedException.class, () -> resultSet.updateBlob("col", Mockito.mock(Blob.class)));
127+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateClob(1, Mockito.mock(Clob.class)));
128+
assertThrows(
129+
SQLFeatureNotSupportedException.class, () -> resultSet.updateClob("col", Mockito.mock(Clob.class)));
130+
assertThrows(
131+
SQLFeatureNotSupportedException.class,
132+
() -> resultSet.updateArray(1, Mockito.mock(java.sql.Array.class)));
133+
assertThrows(
134+
SQLFeatureNotSupportedException.class,
135+
() -> resultSet.updateArray("col", Mockito.mock(java.sql.Array.class)));
136+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateRowId(1, Mockito.mock(RowId.class)));
137+
assertThrows(
138+
SQLFeatureNotSupportedException.class, () -> resultSet.updateRowId("col", Mockito.mock(RowId.class)));
139+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNString(1, "test"));
140+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNString("col", "test"));
141+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNClob(1, Mockito.mock(NClob.class)));
142+
assertThrows(
143+
SQLFeatureNotSupportedException.class, () -> resultSet.updateNClob("col", Mockito.mock(NClob.class)));
144+
assertThrows(
145+
SQLFeatureNotSupportedException.class, () -> resultSet.updateSQLXML(1, Mockito.mock(SQLXML.class)));
146+
assertThrows(
147+
SQLFeatureNotSupportedException.class, () -> resultSet.updateSQLXML("col", Mockito.mock(SQLXML.class)));
148+
assertThrows(
149+
SQLFeatureNotSupportedException.class,
150+
() -> resultSet.updateNCharacterStream(1, Mockito.mock(Reader.class), 1L));
151+
assertThrows(
152+
SQLFeatureNotSupportedException.class,
153+
() -> resultSet.updateNCharacterStream("col", Mockito.mock(Reader.class), 1L));
154+
assertThrows(
155+
SQLFeatureNotSupportedException.class,
156+
() -> resultSet.updateAsciiStream(1, Mockito.mock(InputStream.class), 1L));
157+
assertThrows(
158+
SQLFeatureNotSupportedException.class,
159+
() -> resultSet.updateBinaryStream(1, Mockito.mock(InputStream.class), 1L));
160+
assertThrows(
161+
SQLFeatureNotSupportedException.class,
162+
() -> resultSet.updateCharacterStream(1, Mockito.mock(Reader.class), 1L));
163+
assertThrows(
164+
SQLFeatureNotSupportedException.class,
165+
() -> resultSet.updateAsciiStream("col", Mockito.mock(InputStream.class), 1L));
166+
assertThrows(
167+
SQLFeatureNotSupportedException.class,
168+
() -> resultSet.updateBinaryStream("col", Mockito.mock(InputStream.class), 1L));
169+
assertThrows(
170+
SQLFeatureNotSupportedException.class,
171+
() -> resultSet.updateCharacterStream("col", Mockito.mock(Reader.class), 1L));
172+
assertThrows(
173+
SQLFeatureNotSupportedException.class,
174+
() -> resultSet.updateBlob(1, Mockito.mock(InputStream.class), 1L));
175+
assertThrows(
176+
SQLFeatureNotSupportedException.class,
177+
() -> resultSet.updateBlob("col", Mockito.mock(InputStream.class), 1L));
178+
assertThrows(
179+
SQLFeatureNotSupportedException.class, () -> resultSet.updateClob(1, Mockito.mock(Reader.class), 1L));
180+
assertThrows(
181+
SQLFeatureNotSupportedException.class,
182+
() -> resultSet.updateClob("col", Mockito.mock(Reader.class), 1L));
183+
assertThrows(
184+
SQLFeatureNotSupportedException.class, () -> resultSet.updateNClob(1, Mockito.mock(Reader.class), 1L));
185+
assertThrows(
186+
SQLFeatureNotSupportedException.class,
187+
() -> resultSet.updateNClob("col", Mockito.mock(Reader.class), 1L));
188+
assertThrows(
189+
SQLFeatureNotSupportedException.class,
190+
() -> resultSet.updateNCharacterStream(1, Mockito.mock(Reader.class)));
191+
assertThrows(
192+
SQLFeatureNotSupportedException.class,
193+
() -> resultSet.updateNCharacterStream("col", Mockito.mock(Reader.class)));
194+
assertThrows(
195+
SQLFeatureNotSupportedException.class,
196+
() -> resultSet.updateAsciiStream(1, Mockito.mock(InputStream.class)));
197+
assertThrows(
198+
SQLFeatureNotSupportedException.class,
199+
() -> resultSet.updateBinaryStream(1, Mockito.mock(InputStream.class)));
200+
assertThrows(
201+
SQLFeatureNotSupportedException.class,
202+
() -> resultSet.updateCharacterStream(1, Mockito.mock(Reader.class)));
203+
assertThrows(
204+
SQLFeatureNotSupportedException.class,
205+
() -> resultSet.updateAsciiStream("col", Mockito.mock(InputStream.class)));
206+
assertThrows(
207+
SQLFeatureNotSupportedException.class,
208+
() -> resultSet.updateBinaryStream("col", Mockito.mock(InputStream.class)));
209+
assertThrows(
210+
SQLFeatureNotSupportedException.class,
211+
() -> resultSet.updateCharacterStream("col", Mockito.mock(Reader.class)));
212+
assertThrows(
213+
SQLFeatureNotSupportedException.class, () -> resultSet.updateBlob(1, Mockito.mock(InputStream.class)));
214+
assertThrows(
215+
SQLFeatureNotSupportedException.class,
216+
() -> resultSet.updateBlob("col", Mockito.mock(InputStream.class)));
217+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateClob(1, Mockito.mock(Reader.class)));
218+
assertThrows(
219+
SQLFeatureNotSupportedException.class, () -> resultSet.updateClob("col", Mockito.mock(Reader.class)));
220+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.updateNClob(1, Mockito.mock(Reader.class)));
221+
assertThrows(
222+
SQLFeatureNotSupportedException.class, () -> resultSet.updateNClob("col", Mockito.mock(Reader.class)));
223+
assertThrows(SQLFeatureNotSupportedException.class, () -> resultSet.getNClob(1));
224+
}
225+
}

0 commit comments

Comments
 (0)