| /* | |
| * 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.security.Policy; | |
| import java.sql.JDBCType; | |
| import java.sql.SQLException; | |
| import org.testng.annotations.AfterClass; | |
| import org.testng.annotations.AfterMethod; | |
| import org.testng.annotations.BeforeClass; | |
| import org.testng.annotations.BeforeMethod; | |
| import org.testng.annotations.DataProvider; | |
| 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; | |
| } | |
| /* | |
| * Utility Method used to set the current Policy | |
| */ | |
| protected static void setPolicy(Policy p) { | |
| Policy.setPolicy(p); | |
| } | |
| /* | |
| * DataProvider used to specify the value to set and check for | |
| * methods using boolean values | |
| */ | |
| @DataProvider(name = "trueFalse") | |
| protected Object[][] trueFalse() { | |
| return new Object[][]{ | |
| {true}, | |
| {false} | |
| }; | |
| } | |
| /* | |
| * DataProvider used to specify the standard JDBC Types | |
| */ | |
| @DataProvider(name = "jdbcTypes") | |
| protected Object[][] jdbcTypes() { | |
| Object[][] o = new Object[JDBCType.values().length][1]; | |
| int pos = 0; | |
| for (JDBCType c : JDBCType.values()) { | |
| o[pos++][0] = c.getVendorTypeNumber(); | |
| } | |
| return o; | |
| } | |
| } |