8043278: Add initial unit tests for javax.sql.rowset.serial
Reviewed-by: rriggs
This commit is contained in:
parent
3a555f0516
commit
ae0d3204f0
@ -61,29 +61,31 @@ public class BaseTest {
|
||||
public void tearDownMethod() throws Exception {
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Take some form of SQLException, serialize and deserialize it
|
||||
*
|
||||
* @param <T> SQLException
|
||||
* @param ex SQLException
|
||||
* @return deserialized SQLException
|
||||
* @throws IOException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <T extends SQLException> T
|
||||
createSerializedException(T ex)
|
||||
throws IOException, ClassNotFoundException {
|
||||
T ex1;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
try (ObjectOutputStream oos = new ObjectOutputStream(baos) ) {
|
||||
oos.writeObject(ex);
|
||||
}
|
||||
try (ObjectInputStream ois =
|
||||
new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()))) {
|
||||
ex1 = (T) ois.readObject();
|
||||
}
|
||||
return ex1;
|
||||
return (T) serializeDeserializeObject(ex);
|
||||
}
|
||||
|
||||
/*
|
||||
* Utility method to serialize and deserialize an object
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <T> T serializeDeserializeObject(T o)
|
||||
throws IOException, ClassNotFoundException {
|
||||
T o1;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
|
||||
oos.writeObject(o);
|
||||
}
|
||||
try (ObjectInputStream ois
|
||||
= new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()))) {
|
||||
o1 = (T) ois.readObject();
|
||||
}
|
||||
return o1;
|
||||
}
|
||||
}
|
||||
|
2
jdk/test/javax/sql/testng/TEST.properties
Normal file
2
jdk/test/javax/sql/testng/TEST.properties
Normal file
@ -0,0 +1,2 @@
|
||||
# JDBC unit tests uses TestNG
|
||||
TestNG.dirs= .
|
@ -0,0 +1,236 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.sql.Array;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.sql.rowset.serial.SerialArray;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
import util.StubArray;
|
||||
|
||||
public class SerialArrayTests extends BaseTest {
|
||||
|
||||
private Object[] coffees;
|
||||
private final String sqlType = "VARCHAR";
|
||||
private Array a;
|
||||
private Map<String, Class<?>> map;
|
||||
|
||||
@BeforeMethod
|
||||
public void setUpMethod() throws Exception {
|
||||
coffees = new Object[]{"Espresso", "Colombian", "French Roast",
|
||||
"Cappuccino"};
|
||||
a = new StubArray(sqlType, coffees);
|
||||
map = new HashMap<>();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialArray can be created from an Array
|
||||
*/
|
||||
@Test
|
||||
public void test01() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SQLException is thrown if the map is null
|
||||
*/
|
||||
@Test(expectedExceptions = SQLException.class)
|
||||
public void test02() throws Exception {
|
||||
SerialArray sa = new SerialArray(a, null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getResultSet() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test03() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.getResultSet();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getResultSet() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test04() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.getResultSet(null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getResultSet() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test05() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.getResultSet(1, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getResultSet() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test06() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.getResultSet(1, 1, null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getArray() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test07() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getArray();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getArray() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test08() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getArray(map);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getArray() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test09() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getArray(1, 1, map);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getArray() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test10() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getArray(1, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getBaseType() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test11() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getBaseType();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown when getBaseTypeName() is invoked after
|
||||
* free() is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test12() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
sa.free();
|
||||
sa.getBaseTypeName();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getArray() returns the same Object[] used to create the
|
||||
* SerialArray
|
||||
*/
|
||||
@Test
|
||||
public void test13() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
Object[] o = (Object[]) sa.getArray();
|
||||
assertTrue(Arrays.equals(o, coffees));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getArray() returns the same Object[] used to create the
|
||||
* SerialArray
|
||||
*/
|
||||
@Test
|
||||
public void test14() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
Object[] o = (Object[]) sa.getArray(map);
|
||||
assertTrue(Arrays.equals(o, coffees));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getArray() returns the same Object[] used to create the
|
||||
* SerialArray
|
||||
*/
|
||||
@Test
|
||||
public void test15() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
Object[] o = (Object[]) sa.getArray(1, 2);
|
||||
assertTrue(Arrays.equals(o, Arrays.copyOfRange(coffees, 1, 3)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getArray() returns the same Object[] used to create the
|
||||
* SerialArray
|
||||
*/
|
||||
@Test
|
||||
public void test16() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
Object[] o = (Object[]) sa.getArray(1, 2, map);
|
||||
assertTrue(Arrays.equals(o, Arrays.copyOfRange(coffees, 1, 3)));
|
||||
}
|
||||
|
||||
/*
|
||||
* clone() a SerialArray and check that it is equal to the
|
||||
* object it was cloned from
|
||||
*/
|
||||
@Test
|
||||
public void test17() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
SerialArray sa1 = (SerialArray) sa.clone();
|
||||
assertTrue(sa.equals(sa1));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SerialArray that is serialized & deserialized is equal to
|
||||
* itself
|
||||
*/
|
||||
@Test
|
||||
public void test18() throws Exception {
|
||||
SerialArray sa = new SerialArray(a);
|
||||
SerialArray sa1 = serializeDeserializeObject(sa);;
|
||||
assertTrue(sa.equals(sa1));
|
||||
}
|
||||
}
|
@ -0,0 +1,399 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Arrays;
|
||||
import javax.sql.rowset.serial.SerialBlob;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
import util.StubBlob;
|
||||
|
||||
public class SerialBlobTests extends BaseTest {
|
||||
|
||||
// byte[] used to populate SerialBlob
|
||||
private byte[] bytes = new byte[]{1, 2, 3, 4, 5};
|
||||
|
||||
/*
|
||||
* Validate calling free() does not throw an Exception
|
||||
*/
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getBinaryStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test01() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.getBinaryStream();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getBinaryStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test02() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.getBinaryStream(1, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getBytes() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test03() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.getBytes(1, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getLength() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test04() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.length();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling position() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test05() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.position(new byte[5], 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling position() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test06() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.position(new StubBlob(), 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling free() after calling setBinaryStream() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test07() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.setBinaryStream(5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling free() after calling setBytes() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test08() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.setBytes(1, new byte[5]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling setBytes() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test09() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.setBytes(1, new byte[10], 0, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling truncate() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test10() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
sb.free();
|
||||
sb.truncate(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getBinaryStream returns the correct bytes
|
||||
*/
|
||||
@Test
|
||||
public void test11() throws Exception {
|
||||
byte[] expected = new byte[]{1, 2, 3};
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(1, 3);
|
||||
for (byte b : expected) {
|
||||
byte val = (byte) is.read();
|
||||
assertTrue(b == val, val + " does not match " + b);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if pos < 0 for getBinaryStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test12() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(-1, 3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if pos = 0 for getBinaryStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test13() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(0, 3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if len > the length of the stream
|
||||
* for getBinaryStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test14() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(0, 3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if length < 1
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test15() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(1, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if length > byte array length
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test16() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(1, 6);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if pos > byte array length
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test17() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream(bytes.length + 2, 6);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a cloned SerializedBlob bytes match the original
|
||||
*/
|
||||
@Test
|
||||
public void test18() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
SerialBlob sb2 = (SerialBlob) sb.clone();
|
||||
assertTrue(
|
||||
Arrays.equals(sb.getBytes(1, (int) sb.length()),
|
||||
sb2.getBytes(1, (int) sb2.length())),
|
||||
"arrays do not match ");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test clone after free has been called that the clone is not accessible
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test19() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
sb.free();
|
||||
SerialBlob sb2 = (SerialBlob) sb.clone();
|
||||
InputStream is = sb2.getBinaryStream(1, 3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SerialBlob that is serialized & deserialized is equal to
|
||||
* itself
|
||||
*/
|
||||
@Test
|
||||
public void test20() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
SerialBlob sb2 = serializeDeserializeObject(sb);
|
||||
assertTrue(sb.equals(sb2), "SerialBlob not equal");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate a SerialException is thrown if byte[] is used to
|
||||
* create the SeriablBlob and setBinaryStream is called
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test21() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
sb.setBinaryStream(3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that setBytes will properly write a set of bytes to the
|
||||
* specified location in the SerialBlob and the correct count is returned
|
||||
* for bytes written
|
||||
*/
|
||||
@Test
|
||||
public void test22() throws Exception {
|
||||
byte[] diff = new byte[]{7, 8, 9};
|
||||
byte[] expected = new byte[]{1, 7, 8, 9, 5};
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
int written = sb.setBytes(2, diff);
|
||||
assertEquals(written, diff.length);
|
||||
assertTrue(
|
||||
Arrays.equals(sb.getBytes(1, (int) sb.length()),
|
||||
expected),
|
||||
"arrays do not match ");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that setBytes will properly write a set of bytes to the
|
||||
* specified location in the SerialBlob and the correct count is returned
|
||||
* for bytes written
|
||||
*/
|
||||
@Test
|
||||
public void test23() throws Exception {
|
||||
int bytesToWrite = 3;
|
||||
byte[] diff = new byte[]{7, 8, 9, 0};
|
||||
byte[] expected = new byte[]{1, 8, 9, 0, 5};
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
int written = sb.setBytes(2, diff, 1, bytesToWrite);
|
||||
assertEquals(written, bytesToWrite);
|
||||
assertTrue(
|
||||
Arrays.equals(sb.getBytes(1, (int) sb.length()),
|
||||
expected),
|
||||
"arrays do not match ");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that truncate reduces the length of the SerlizedBlob to the
|
||||
* specified value
|
||||
*/
|
||||
@Test
|
||||
public void test24() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
sb.truncate(0);
|
||||
assertTrue(sb.length() == 0);
|
||||
sb = new SerialBlob(bytes);
|
||||
sb.truncate(3);
|
||||
assertTrue(sb.length() == 3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate getBinaryStream returns the correct bytes
|
||||
*/
|
||||
@Test
|
||||
public void test25() throws Exception {
|
||||
byte[] expected = bytes;
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
InputStream is = sb.getBinaryStream();
|
||||
for (byte b : expected) {
|
||||
byte val = (byte) is.read();
|
||||
assertTrue(b == val, val + " does not match " + b);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate setBinaryStream returns an OutputStream when passed a Blob
|
||||
*/
|
||||
@Test
|
||||
public void test26() throws Exception {
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
OutputStream os = sb.setBinaryStream(0);
|
||||
assertTrue(os != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position returns the correct starting location for a
|
||||
* pattern in the SerialBlob
|
||||
*/
|
||||
@Test
|
||||
public void test27() throws Exception {
|
||||
long expectedPos = 3; // starting offset is 1 vs 0
|
||||
byte[] pattern = new byte[]{3, 4};
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
long pos = sb.position(pattern, 1);
|
||||
assertEquals(pos, expectedPos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position returns the correct starting location for a
|
||||
* pattern in the SerialBlob
|
||||
*/
|
||||
@Test
|
||||
public void test28() throws Exception {
|
||||
long expectedPos = 3; // starting offset is 1 vs 0
|
||||
byte[] pattern = new byte[]{3, 4, 5};
|
||||
SerialBlob sb = new SerialBlob(bytes);
|
||||
long pos = sb.position(pattern, 2);
|
||||
assertEquals(pos, expectedPos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position returns the correct starting location for a
|
||||
* pattern in the SerialBlob
|
||||
*/
|
||||
@Test
|
||||
public void test29() throws Exception {
|
||||
long expectedPos = 2; // starting offset is 1 vs 0
|
||||
byte[] pattern = new byte[]{4, 6};
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
long pos = sb.position(pattern, 1);
|
||||
assertEquals(pos, expectedPos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position returns the correct starting location for a
|
||||
* pattern in the SerialBlob
|
||||
*/
|
||||
@Test
|
||||
public void test30() throws Exception {
|
||||
long expectedPos = 3; // starting offset is 1 vs 0
|
||||
byte[] pattern = new byte[]{6, 8};
|
||||
SerialBlob sb = new SerialBlob(new StubBlob());
|
||||
long pos = sb.position(pattern, 2);
|
||||
assertEquals(pos, expectedPos);
|
||||
}
|
||||
}
|
@ -0,0 +1,499 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import javax.sql.rowset.serial.SerialClob;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
import util.StubClob;
|
||||
|
||||
public class SerialClobTests extends BaseTest {
|
||||
|
||||
// char[] used to populate SerialClob
|
||||
private final char[] chars;
|
||||
|
||||
public SerialClobTests() {
|
||||
this.chars = new char[]{'h', 'e', 'l', 'l', 'o', ' ', 'w',
|
||||
'o', 'r', 'l', 'd'};
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling free() does not throw an Exception
|
||||
*/
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getCharacterStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test01() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.getCharacterStream();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getCharacterStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test02() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.free();
|
||||
sc.getCharacterStream();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getCharacterStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test03() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.getCharacterStream(1, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getSubString() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test04() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.getSubString(1, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling truncate() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test05() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.truncate(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling getAsciiStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test06() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.getAsciiStream();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling length() after calling free() throws an SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test07() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.length();
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling position() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test08() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.position("hello", 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling position() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test09() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.position(new StubClob(), 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling setAsciiStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test10() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.setAsciiStream(5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling setCharacterStream() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test11() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.setCharacterStream(5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling setString() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test12() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.setString(1, "hello");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate calling setString() after calling free() throws an
|
||||
* SerialException
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test13() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.free();
|
||||
sc.setString(1, "hello", 0, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that SerialException is thrown if pos < 0 on a call to
|
||||
* getCharacterStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test14() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.getCharacterStream(-1, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that SerialException is thrown if pos = 0 on a call to
|
||||
* getCharacterStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test15() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.getCharacterStream(0, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that SerialException is thrown if pos = 0 on a call to
|
||||
* getCharacterStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test16() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.getCharacterStream(1, 100);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that SerialException is thrown if length = 0 on a call to
|
||||
* getCharacterStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test17() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.getCharacterStream(1, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test that SerialException is thrown if pos > length on a call to
|
||||
* getCharacterStream
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test18() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
sc.getCharacterStream(100, 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clone a SerialClob and check that it is equal to itself
|
||||
*/
|
||||
@Test
|
||||
public void test19() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
SerialClob sc1 = (SerialClob) sc.clone();
|
||||
assertTrue(sc.equals(sc1), "SerialClobs not equal");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getAsciiStream() returns an InputStream when a Clob is
|
||||
* used to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test20() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
InputStream is = sc.getAsciiStream();
|
||||
assertTrue(is != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getCharacterStream() returns an Reader when a Clob is
|
||||
* used to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test21() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
Reader is = sc.getCharacterStream();
|
||||
assertTrue(is != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getCharacterStream() returns an Reader when a char[] is
|
||||
* used to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test22() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
Reader is = sc.getCharacterStream();
|
||||
assertTrue(is != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getSubString() returns the correct value when a char[] is
|
||||
* used to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test23() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
String expected = "world";
|
||||
assertEquals(expected, sc.getSubString(7, 5));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getSubString() returns the correct value when a Clob is
|
||||
* used to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test24() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
String expected = "test string";
|
||||
assertEquals(expected, sc.getSubString(5, 11));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position() returns the correct value when a Clob is used to
|
||||
* create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test25() throws Exception {
|
||||
long expectedPos = 5;
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
String expected = "test string";
|
||||
long pos = sc.position(expected, 1);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position returned is -1 when an the search string is not
|
||||
* part of the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test26() throws Exception {
|
||||
long expectedPos = -1;
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
String expected = "test string";
|
||||
long pos = sc.position(expected, 1);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position() returned is -1 when an the search string is not
|
||||
* part of the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test27() throws Exception {
|
||||
long expectedPos = -1;
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
String expected = "I am Batman";
|
||||
long pos = sc.position(expected, 2);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position() returns the correct value when a char[] is used
|
||||
* to create the SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test28() throws Exception {
|
||||
long expectedPos = 2;
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
String expected = "ello";
|
||||
long pos = sc.position(expected, 1);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position() returns the correct value when a SerialClob is
|
||||
* used for the search argument
|
||||
*/
|
||||
@Test
|
||||
public void test29() throws Exception {
|
||||
long expectedPos = 21;
|
||||
String expected = "Batman";
|
||||
String buf = "I am Joker, not the Batman, hahaha";
|
||||
SerialClob sc = new SerialClob(expected.toCharArray());
|
||||
SerialClob sc1 = new SerialClob(buf.toCharArray());
|
||||
long pos = sc1.position(sc, 1);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that position() returns the correct value when a SerialClob is
|
||||
* used for the search argument
|
||||
*/
|
||||
@Test
|
||||
public void test30() throws Exception {
|
||||
long expectedPos = 17;
|
||||
String expected = "012";
|
||||
SerialClob sc = new SerialClob(expected.toCharArray());
|
||||
SerialClob sc1 = new SerialClob(new StubClob());
|
||||
long pos = sc1.position(sc, 1);
|
||||
assertEquals(expectedPos, pos);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that setString() updates the appropriate characters in the
|
||||
* SerialClob
|
||||
*/
|
||||
@Test
|
||||
public void test31() throws Exception {
|
||||
String val = "Hello, I am Bruce Wayne";
|
||||
String val1 = "the Batman!";
|
||||
String expected = "Hello, I am the Batman!";
|
||||
SerialClob sc = new SerialClob(val.toCharArray());
|
||||
int written = sc.setString(13, val1);
|
||||
assertEquals(val1.length(), written);
|
||||
assertTrue(expected.equals(sc.getSubString(1, (int) sc.length())));
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that setString() updates the appropriate characters in the
|
||||
* SerialClob
|
||||
*/
|
||||
@Test(enabled = false)
|
||||
public void test32() throws Exception {
|
||||
int expectedWritten = 9;
|
||||
String val = "Hi, I am Catwoman!!!!!!";
|
||||
String val1 = "Hahaha the Joker, who are you?!";
|
||||
String expected = "Hi, I am the Joker!";
|
||||
SerialClob sc = new SerialClob(val.toCharArray());
|
||||
int written = sc.setString(10, val1, 8, expectedWritten+1);
|
||||
assertEquals(written, expectedWritten);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that setCharacterStream() returns a non-null Writer for an
|
||||
* SerialClob created from a Clob
|
||||
*/
|
||||
@Test
|
||||
public void test33() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
Writer w = sc.setCharacterStream(1);
|
||||
assertTrue(w != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that setAsciiStream() returns a non-null OutputStream for an SerialClob
|
||||
* created from a Clob
|
||||
*/
|
||||
@Test
|
||||
public void test34() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
OutputStream os = sc.setAsciiStream(1);
|
||||
assertTrue(os != null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that truncate() truncates the length of the SerialClob to the
|
||||
* specified size
|
||||
*/
|
||||
@Test
|
||||
public void test35() throws Exception {
|
||||
SerialClob sc = new SerialClob(new StubClob());
|
||||
sc.truncate(0);
|
||||
assertTrue(sc.length() == 0);
|
||||
sc = new SerialClob(chars);
|
||||
sc.truncate(5);
|
||||
assertTrue(sc.length() == 5);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that getCharacterStream() returns a Reader and that the char[] that
|
||||
* was specified to create the SerialClob can be returned via the Reader
|
||||
*/
|
||||
@Test
|
||||
public void test36() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
Reader r = sc.getCharacterStream();
|
||||
for (char c : chars) {
|
||||
char val = (char) r.read();
|
||||
assertTrue(c == val, val + " does not match " + c);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that getCharacterStream() returns a Reader and that the char[] that
|
||||
* was specified to create the SerialClob can be returned via the Reader
|
||||
*/
|
||||
@Test(enabled = false)
|
||||
public void test37() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
String expected = "ello w";
|
||||
Reader r = sc.getCharacterStream(2, 6);
|
||||
for (char c : expected.toCharArray()) {
|
||||
char val = (char) r.read();
|
||||
assertTrue(c == val, val + " does not match " + c);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SerialClob that is serialized & deserialized is equal to
|
||||
* itself
|
||||
*/
|
||||
@Test
|
||||
public void test38() throws Exception {
|
||||
SerialClob sc = new SerialClob(chars);
|
||||
SerialClob sc2 = serializeDeserializeObject(sc);
|
||||
assertTrue(sc.equals(sc2), "SerialClobs not equal");
|
||||
}
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.net.URL;
|
||||
import javax.sql.rowset.serial.SerialDatalink;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
|
||||
public class SerialDataLinkTests extends BaseTest {
|
||||
|
||||
private URL u;
|
||||
private URL u1;
|
||||
private SerialDatalink dl;
|
||||
|
||||
@BeforeMethod
|
||||
public void setUpMethod() throws Exception {
|
||||
u = new URL("http://www.oracle.com/");
|
||||
u1 = new URL("http://www.usatoday.com/");
|
||||
dl = new SerialDatalink(u);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SerialException is thrown if the URL is null
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class)
|
||||
public void test() throws Exception {
|
||||
SerialDatalink dl1 = new SerialDatalink(null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getDatalink() returns the same URL used to create the
|
||||
* SerialDatalink object
|
||||
*/
|
||||
@Test
|
||||
public void test01() throws Exception {
|
||||
URL u2 = dl.getDatalink();
|
||||
assertTrue(u2.equals(u));
|
||||
assertTrue(u2.sameFile(u));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that URL returned from getDatalink() differs from a URL that was
|
||||
* not used to create the SerialDatalink
|
||||
*/
|
||||
@Test
|
||||
public void test02() throws Exception {
|
||||
URL u2 = dl.getDatalink();
|
||||
assertFalse(u2.equals(u1));
|
||||
assertFalse(u2.sameFile(u1));
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a clone of a SerialDatalink and validate that it is equal to the
|
||||
* SerialDatalink it was cloned from
|
||||
*/
|
||||
@Test
|
||||
public void test03() throws Exception {
|
||||
SerialDatalink dl2 = (SerialDatalink) dl.clone();
|
||||
assertTrue(dl.equals(dl2));
|
||||
SerialDatalink dl3 = new SerialDatalink(u1);
|
||||
assertFalse(dl2.equals(dl3));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SerialDatalink that is serialized & deserialized is
|
||||
* equal to itself
|
||||
*/
|
||||
@Test
|
||||
public void test04() throws Exception {
|
||||
SerialDatalink dl2 = serializeDeserializeObject(dl);
|
||||
SerialDatalink dl3 = new SerialDatalink(u);
|
||||
assertTrue(dl.equals(dl2));
|
||||
assertTrue(dl3.equals(dl2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that a SerialDatalink that is serialized & deserialized is not equal
|
||||
* to to a SerialDatalink created using a different URL
|
||||
*/
|
||||
@Test
|
||||
public void test05() throws Exception {
|
||||
SerialDatalink dl2 = serializeDeserializeObject(dl);
|
||||
SerialDatalink d3 = new SerialDatalink(u1);
|
||||
assertFalse(d3.equals(dl2));
|
||||
}
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
|
||||
public class SerialExceptionTests extends BaseTest {
|
||||
|
||||
/*
|
||||
* Create SerialException with no-arg constructor
|
||||
*/
|
||||
@Test
|
||||
public void test01() {
|
||||
SerialException ex = new SerialException();
|
||||
assertTrue(ex.getMessage() == null
|
||||
&& ex.getSQLState() == null
|
||||
&& ex.getCause() == null
|
||||
&& ex.getErrorCode() == 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create SerialException with message
|
||||
*/
|
||||
@Test
|
||||
public void test02() {
|
||||
SerialException ex = new SerialException(reason);
|
||||
assertTrue(ex.getMessage().equals(reason)
|
||||
&& ex.getSQLState() == null
|
||||
&& ex.getCause() == null
|
||||
&& ex.getErrorCode() == 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that the ordering of the returned Exceptions is correct using
|
||||
* for-each loop
|
||||
*/
|
||||
@Test
|
||||
public void test03() {
|
||||
SerialException ex = new SerialException("Exception 1");
|
||||
ex.initCause(t1);
|
||||
SerialException ex1 = new SerialException("Exception 2");
|
||||
SerialException ex2 = new SerialException("Exception 3");
|
||||
ex2.initCause(t2);
|
||||
ex.setNextException(ex1);
|
||||
ex.setNextException(ex2);
|
||||
int num = 0;
|
||||
for (Throwable e : ex) {
|
||||
assertTrue(msgs[num++].equals(e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that the ordering of the returned Exceptions is correct using
|
||||
* traditional while loop
|
||||
*/
|
||||
@Test
|
||||
public void test04() {
|
||||
SQLException ex = new SerialException("Exception 1");
|
||||
ex.initCause(t1);
|
||||
SerialException ex1 = new SerialException("Exception 2");
|
||||
SerialException ex2 = new SerialException("Exception 3");
|
||||
ex2.initCause(t2);
|
||||
ex.setNextException(ex1);
|
||||
ex.setNextException(ex2);
|
||||
int num = 0;
|
||||
while (ex != null) {
|
||||
assertTrue(msgs[num++].equals(ex.getMessage()));
|
||||
Throwable c = ex.getCause();
|
||||
while (c != null) {
|
||||
assertTrue(msgs[num++].equals(c.getMessage()));
|
||||
c = c.getCause();
|
||||
}
|
||||
ex = ex.getNextException();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Serialize a SerialException and make sure you can read it back properly
|
||||
*/
|
||||
@Test
|
||||
public void test05() throws Exception {
|
||||
SerialException e = new SerialException(reason);
|
||||
SerialException ex1 = createSerializedException(e);
|
||||
assertTrue(ex1.getMessage().equals(reason)
|
||||
&& ex1.getSQLState() == null
|
||||
&& ex1.getCause() == null
|
||||
&& ex1.getErrorCode() == 0);;
|
||||
}
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Arrays;
|
||||
import javax.sql.rowset.RowSetMetaDataImpl;
|
||||
import javax.sql.rowset.serial.SerialException;
|
||||
import javax.sql.rowset.serial.SerialJavaObject;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
|
||||
public class SerialJavaObjectTests extends BaseTest {
|
||||
|
||||
/*
|
||||
* Validate that an NPE is thrown when null is specified to create
|
||||
* the SerialJavaObject
|
||||
*/
|
||||
@Test(expectedExceptions = NullPointerException.class)
|
||||
public void test() throws Exception {
|
||||
SerialJavaObject sjo = new SerialJavaObject(null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that an SerialExcepion is thrown when the object specified
|
||||
* contains public static fields
|
||||
*/
|
||||
@Test(expectedExceptions = SerialException.class, enabled = false)
|
||||
public void test01() throws Exception {
|
||||
SerialJavaObject sjo = new SerialJavaObject(new RowSetMetaDataImpl());
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that an getFields()s returns the same Field[] for the object
|
||||
* used to create the SerialJavaObject
|
||||
*/
|
||||
@Test
|
||||
public void test02() throws Exception {
|
||||
SerialException e = new SerialException();
|
||||
SerialJavaObject sjo = new SerialJavaObject(e);
|
||||
Field[] f = e.getClass().getFields();
|
||||
assertTrue(Arrays.equals(f, sjo.getFields()));
|
||||
assertFalse(Arrays.equals("hello".getClass().getFields(),
|
||||
sjo.getFields()));
|
||||
}
|
||||
|
||||
/*
|
||||
* clone() a SerialJavaObject and check that it is equal to the
|
||||
* object it was cloned from
|
||||
*/
|
||||
@Test
|
||||
public void test03() throws Exception {
|
||||
SerialJavaObject sjo = new SerialJavaObject("Hello");
|
||||
SerialJavaObject sjo2 = (SerialJavaObject) sjo.clone();
|
||||
assertTrue(sjo.equals(sjo2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that a SerialJavaObject that is serialized & deserialized is
|
||||
* equal to itself
|
||||
*/
|
||||
@Test
|
||||
public void test04() throws Exception {
|
||||
SerialJavaObject sjo = new SerialJavaObject("Hello");
|
||||
SerialJavaObject sjo2 = serializeDeserializeObject(sjo);
|
||||
assertTrue(sjo.equals(sjo2));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a getObject() returns an object used to create the
|
||||
* SerialJavaObject
|
||||
*/
|
||||
@Test
|
||||
public void test05() throws Exception {
|
||||
String s = "Hello world";
|
||||
SerialJavaObject sjo = new SerialJavaObject(s);
|
||||
assertTrue(s.equals(sjo.getObject()));
|
||||
}
|
||||
}
|
131
jdk/test/javax/sql/testng/test/rowset/serial/SerialRefTests.java
Normal file
131
jdk/test/javax/sql/testng/test/rowset/serial/SerialRefTests.java
Normal file
@ -0,0 +1,131 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.sql.Ref;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.sql.rowset.serial.SerialRef;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
import util.StubRef;
|
||||
import util.SuperHero;
|
||||
|
||||
public class SerialRefTests extends BaseTest {
|
||||
|
||||
private static Map<String, Class<?>> map = new HashMap<>();
|
||||
private Ref ref;
|
||||
private final String sqlType = "SUPERHERO";
|
||||
private SuperHero hero;
|
||||
|
||||
@BeforeMethod
|
||||
public void setUpMethod() throws Exception {
|
||||
map.put(sqlType, Class.forName("util.SuperHero"));
|
||||
hero = new SuperHero(sqlType, "Bruce", "Wayne", 1939, "Batman");
|
||||
ref = new StubRef(sqlType, hero);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SQLException() is thrown if the Ref is null
|
||||
*/
|
||||
@Test(expectedExceptions = SQLException.class)
|
||||
public void test01() throws Exception {
|
||||
SerialRef sr = new SerialRef(null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that a SQLException() is thrown if the typeName is null in the
|
||||
* Ref used to create the SerialRef
|
||||
*/
|
||||
@Test(expectedExceptions = SQLException.class)
|
||||
public void test02() throws Exception {
|
||||
SerialRef sr = new SerialRef(new StubRef(null, hero));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getBaseTypeName() returns the same SQLType specified
|
||||
* to create the Ref
|
||||
*/
|
||||
@Test
|
||||
public void test03() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
assertEquals(sr.getBaseTypeName(), sqlType);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getObject() returns the same object used to create the Ref
|
||||
*/
|
||||
@Test
|
||||
public void test04() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
assertTrue(hero.equals(sr.getObject()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getObject() returns the same object used to create the Ref
|
||||
*/
|
||||
@Test(enabled = false)
|
||||
public void test05() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
assertTrue(hero.equals(sr.getObject(map)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that setObject() can be used to change the value of the object
|
||||
* pointed to by the SerialRef
|
||||
*/
|
||||
@Test
|
||||
public void test06() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
assertTrue(hero.equals(sr.getObject()));
|
||||
SuperHero h = new SuperHero(sqlType, "Dick", "Grayson", 1940, "Robin");
|
||||
sr.setObject(h);
|
||||
assertFalse(hero.equals(sr.getObject()));
|
||||
}
|
||||
|
||||
/*
|
||||
* clone() a SerialRef and check that it is equal to the
|
||||
* object it was cloned from
|
||||
*/
|
||||
@Test
|
||||
public void test09() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
SerialRef sr1 = (SerialRef) sr.clone();
|
||||
assertTrue(sr.equals(sr1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that a SerialRef that is serialized & deserialized is equal to
|
||||
* itself for the Object & baseTypeName
|
||||
*/
|
||||
@Test
|
||||
public void test10() throws Exception {
|
||||
SerialRef sr = new SerialRef(ref);
|
||||
SerialRef sr1 = serializeDeserializeObject(sr);
|
||||
assertTrue(sr1.getObject().equals(sr.getObject())
|
||||
&& sr1.getBaseTypeName().equals(sr.getBaseTypeName()));
|
||||
}
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package test.rowset.serial;
|
||||
|
||||
import java.sql.Struct;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.sql.rowset.serial.SerialStruct;
|
||||
import static org.testng.Assert.*;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
import util.BaseTest;
|
||||
import util.StubStruct;
|
||||
import util.SuperHero;
|
||||
|
||||
public class SerialStructTests extends BaseTest {
|
||||
|
||||
private static Map<String, Class<?>> map = new HashMap<>();
|
||||
private Object[] attributes;
|
||||
private Struct struct;
|
||||
private final String sqlType = "SUPERHERO";
|
||||
private SuperHero hero;
|
||||
|
||||
@BeforeMethod
|
||||
public void setUpMethod() throws Exception {
|
||||
attributes = new Object[]{"Bruce", "Wayne", 1939,
|
||||
"Batman"};
|
||||
map.put(sqlType, Class.forName("util.SuperHero"));
|
||||
struct = new StubStruct(sqlType, attributes);
|
||||
hero = new SuperHero(sqlType, "Bruce", "Wayne", 1939, "Batman");
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getSQLTypeName() returns the same SQLType specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test01() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(struct, map);
|
||||
assertEquals(ss.getSQLTypeName(), sqlType);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getSQLTypeName() returns the same SQLType specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test02() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(hero, map);
|
||||
assertEquals(ss.getSQLTypeName(), sqlType);
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getAttributes() returns the same attributes specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test03() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(struct, map);
|
||||
assertTrue(Arrays.equals(attributes,
|
||||
ss.getAttributes()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getAttributes() returns the same attributes specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test04() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(hero, map);
|
||||
assertTrue(Arrays.equals(attributes,
|
||||
ss.getAttributes()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getAttributes() returns the
|
||||
same attributes specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test05() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(struct, map);
|
||||
assertTrue(Arrays.equals(attributes,
|
||||
ss.getAttributes(map)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate that getAttributes() returns the same attributes specified by
|
||||
* the Struct used to create the object
|
||||
*/
|
||||
@Test
|
||||
public void test06() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(hero, map);
|
||||
assertTrue(Arrays.equals(attributes,
|
||||
ss.getAttributes(map)));
|
||||
}
|
||||
|
||||
/*
|
||||
* clone() a SerialStruct and check that it is equal to the
|
||||
* object it was cloned from
|
||||
*/
|
||||
@Test
|
||||
public void test07() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(struct, map);
|
||||
SerialStruct ss1 = (SerialStruct) ss.clone();
|
||||
assertTrue(ss.equals(ss1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that a SerialStruct that is serialized & deserialized is equal
|
||||
* to itself
|
||||
*/
|
||||
@Test
|
||||
public void test08() throws Exception {
|
||||
SerialStruct ss = new SerialStruct(struct, map);
|
||||
SerialStruct ss1 = serializeDeserializeObject(ss);;
|
||||
assertTrue(ss.equals(ss1));
|
||||
}
|
||||
}
|
91
jdk/test/javax/sql/testng/util/BaseTest.java
Normal file
91
jdk/test/javax/sql/testng/util/BaseTest.java
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.sql.SQLException;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.AfterMethod;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
|
||||
public class BaseTest {
|
||||
|
||||
protected final String reason = "reason";
|
||||
protected final String state = "SQLState";
|
||||
protected final String cause = "java.lang.Throwable: cause";
|
||||
protected final Throwable t = new Throwable("cause");
|
||||
protected final Throwable t1 = new Throwable("cause 1");
|
||||
protected final Throwable t2 = new Throwable("cause 2");
|
||||
protected final int errorCode = 21;
|
||||
protected final String[] msgs = {"Exception 1", "cause 1", "Exception 2",
|
||||
"Exception 3", "cause 2"};
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void tearDownClass() throws Exception {
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
public void setUpMethod() throws Exception {
|
||||
}
|
||||
|
||||
@AfterMethod
|
||||
public void tearDownMethod() throws Exception {
|
||||
}
|
||||
|
||||
/*
|
||||
* Take some form of SQLException, serialize and deserialize it
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <T extends SQLException> T
|
||||
createSerializedException(T ex)
|
||||
throws IOException, ClassNotFoundException {
|
||||
return (T) serializeDeserializeObject(ex);
|
||||
}
|
||||
|
||||
/*
|
||||
* Utility method to serialize and deserialize an object
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <T> T serializeDeserializeObject(T o)
|
||||
throws IOException, ClassNotFoundException {
|
||||
T o1;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
|
||||
oos.writeObject(o);
|
||||
}
|
||||
try (ObjectInputStream ois
|
||||
= new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()))) {
|
||||
o1 = (T) ois.readObject();
|
||||
}
|
||||
return o1;
|
||||
}
|
||||
}
|
99
jdk/test/javax/sql/testng/util/StubArray.java
Normal file
99
jdk/test/javax/sql/testng/util/StubArray.java
Normal file
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.sql.Array;
|
||||
import java.sql.JDBCType;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
public class StubArray implements Array {
|
||||
|
||||
private String typeName;
|
||||
Object[] elements;
|
||||
|
||||
public StubArray(String name, Object[] values) {
|
||||
typeName = name;
|
||||
elements = Arrays.copyOf(values, values.length);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBaseTypeName() throws SQLException {
|
||||
return typeName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaseType() throws SQLException {
|
||||
return JDBCType.valueOf(typeName).getVendorTypeNumber();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getArray() throws SQLException {
|
||||
return Arrays.copyOf(elements, elements.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getArray(Map<String, Class<?>> map) throws SQLException {
|
||||
return getArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getArray(long index, int count) throws SQLException {
|
||||
return getArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getArray(long index, int count, Map<String, Class<?>> map) throws SQLException {
|
||||
return getArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSet getResultSet() throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSet getResultSet(Map<String, Class<?>> map) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSet getResultSet(long index, int count) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultSet getResultSet(long index, int count, Map<String, Class<?>> map) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void free() throws SQLException {
|
||||
elements = null;
|
||||
typeName = null;
|
||||
}
|
||||
|
||||
}
|
100
jdk/test/javax/sql/testng/util/StubBlob.java
Normal file
100
jdk/test/javax/sql/testng/util/StubBlob.java
Normal file
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.sql.Blob;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class StubBlob implements Blob {
|
||||
|
||||
private byte[] bytes;
|
||||
|
||||
public StubBlob() {
|
||||
bytes = new byte[]{2, 4, 6, 8};
|
||||
}
|
||||
|
||||
public long length() throws SQLException {
|
||||
return bytes.length;
|
||||
}
|
||||
|
||||
public byte[] getBytes(long pos, int length)
|
||||
throws SQLException {
|
||||
return Arrays.copyOfRange(bytes, (int) pos - 1, length);
|
||||
}
|
||||
|
||||
public InputStream getBinaryStream()
|
||||
throws SQLException {
|
||||
return null;
|
||||
}
|
||||
|
||||
public long position(byte[] pattern, long start)
|
||||
throws SQLException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public long position(Blob pattern, long start)
|
||||
throws SQLException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int setBytes(long pos, byte[] bytes)
|
||||
throws SQLException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int setBytes(long pos, byte[] bytes, int offset, int len)
|
||||
throws SQLException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public OutputStream setBinaryStream(long pos)
|
||||
throws SQLException {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
ObjectOutputStream oos = null;
|
||||
try {
|
||||
oos = new ObjectOutputStream(baos);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(StubBlob.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return oos;
|
||||
}
|
||||
|
||||
public void truncate(long len)
|
||||
throws SQLException {
|
||||
}
|
||||
|
||||
public void free() throws SQLException {
|
||||
}
|
||||
|
||||
public InputStream getBinaryStream(long pos, long length) throws SQLException {
|
||||
return null;
|
||||
}
|
||||
}
|
113
jdk/test/javax/sql/testng/util/StubClob.java
Normal file
113
jdk/test/javax/sql/testng/util/StubClob.java
Normal file
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.sql.Clob;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class StubClob implements Clob {
|
||||
|
||||
public String buf = "The test string 0123456789";
|
||||
|
||||
@Override
|
||||
public String getSubString(long pos, int length) throws SQLException {
|
||||
return buf;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long length() throws SQLException {
|
||||
return buf.length();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Reader getCharacterStream() throws SQLException {
|
||||
return new StringReader(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream getAsciiStream() throws SQLException {
|
||||
return new java.io.StringBufferInputStream(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int setString(long pos, String str) throws SQLException {
|
||||
return str.length();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int setString(long pos, String str, int offset, int len) throws SQLException {
|
||||
return len;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long position(String searchstr, long start) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public long position(Clob searchstr, long start) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OutputStream setAsciiStream(long pos) throws SQLException {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
ObjectOutputStream oos = null;
|
||||
try {
|
||||
oos = new ObjectOutputStream(baos);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(StubBlob.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return oos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Writer setCharacterStream(long pos) throws SQLException {
|
||||
return new StringWriter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void truncate(long len) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void free() throws SQLException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Reader getCharacterStream(long pos, long length) throws SQLException {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
60
jdk/test/javax/sql/testng/util/StubRef.java
Normal file
60
jdk/test/javax/sql/testng/util/StubRef.java
Normal file
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Ref;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
|
||||
public class StubRef implements Ref, Serializable {
|
||||
|
||||
private final String baseTypeName;
|
||||
private Object obj;
|
||||
|
||||
public StubRef(String type, Object o) {
|
||||
baseTypeName = type;
|
||||
obj = o;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBaseTypeName() throws SQLException {
|
||||
return baseTypeName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getObject(Map<String, Class<?>> map) throws SQLException {
|
||||
return obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getObject() throws SQLException {
|
||||
return getObject(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setObject(Object value) throws SQLException {
|
||||
obj = value;
|
||||
}
|
||||
|
||||
}
|
55
jdk/test/javax/sql/testng/util/StubStruct.java
Normal file
55
jdk/test/javax/sql/testng/util/StubStruct.java
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Struct;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
public class StubStruct implements Struct {
|
||||
|
||||
private final String type;
|
||||
private final Object[] attribs;
|
||||
|
||||
public StubStruct(String type, Object[] o) {
|
||||
this.type = type;
|
||||
this.attribs = Arrays.copyOf(o, o.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSQLTypeName() throws SQLException {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getAttributes() throws SQLException {
|
||||
return attribs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getAttributes(Map<String, Class<?>> map) throws SQLException {
|
||||
return attribs;
|
||||
}
|
||||
|
||||
}
|
106
jdk/test/javax/sql/testng/util/SuperHero.java
Normal file
106
jdk/test/javax/sql/testng/util/SuperHero.java
Normal file
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package util;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.SQLData;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLInput;
|
||||
import java.sql.SQLOutput;
|
||||
|
||||
public class SuperHero implements SQLData, Serializable {
|
||||
|
||||
private String first;
|
||||
private String last;
|
||||
private final String type;
|
||||
private Integer firstYear;
|
||||
private String secretIdentity;
|
||||
|
||||
public SuperHero(String sqlType, String fname, String lname, Integer year,
|
||||
String identity) {
|
||||
first = fname;
|
||||
last = lname;
|
||||
type = sqlType;
|
||||
firstYear = year;
|
||||
secretIdentity = identity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSQLTypeName() throws SQLException {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readSQL(SQLInput stream, String typeName) throws SQLException {
|
||||
first = stream.readString();
|
||||
last = stream.readString();
|
||||
firstYear = stream.readInt();
|
||||
secretIdentity = stream.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeSQL(SQLOutput stream) throws SQLException {
|
||||
stream.writeString(first);
|
||||
stream.writeString(last);
|
||||
stream.writeInt(firstYear);
|
||||
stream.writeString(secretIdentity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[ name =" + first + " " + last + " "
|
||||
+ firstYear + " " + secretIdentity + " ]";
|
||||
}
|
||||
|
||||
public void setIdentity(String identity) {
|
||||
secretIdentity = identity;
|
||||
}
|
||||
|
||||
public String getIdentity() {
|
||||
return secretIdentity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof SuperHero) {
|
||||
SuperHero ss = (SuperHero) obj;
|
||||
return first.equals(ss.first) && last.equals(ss.last)
|
||||
&& firstYear.equals(ss.firstYear)
|
||||
&& type.equals(ss.type)
|
||||
&& secretIdentity.equals(ss.secretIdentity);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return ((31 + first.hashCode()) * 31) * 31
|
||||
+ ((31 + last.hashCode()) * 31) * 31
|
||||
+ ((31 + firstYear.hashCode()) * 31) * 31
|
||||
+ ((31 + type.hashCode()) * 31) * 31
|
||||
+ secretIdentity.hashCode();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user