/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.harmony.sql.tests.java.sql; //import dalvik.annotation.TestTargetClass; //import dalvik.annotation.TestTargets; //import dalvik.annotation.TestLevel; //import dalvik.annotation.TestTargetNew; import java.io.Serializable; import java.sql.SQLException; import java.sql.SQLWarning; import org.apache.harmony.testframework.serialization.SerializationTest; import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert; import junit.framework.TestCase; //@TestTargetClass(SQLWarning.class) public class SQLWarningTest extends TestCase { /* * ConstructorTest */ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "SQLWarning", args = {} ) public void testSQLWarning() { String[] theFinalStates1 = { null }; String[] theFinalStates2 = { null }; int[] theFinalStates3 = { 0 }; SQLWarning[] theFinalStates4 = { null }; Exception[] theExceptions = { null }; SQLWarning aSQLWarning; int loopCount = 1; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(); if (theExceptions[i] != null) { fail(); } assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testSQLWarning /* * ConstructorTest */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "SQLWarning", args = {java.lang.String.class} ) public void testSQLWarningString() { String[] init1 = { "a", "1", "valid1", "----", "&valid*", null, "", "\u0000" }; String[] theFinalStates1 = init1; String[] theFinalStates2 = { null, null, null, null, null, null, null, null }; int[] theFinalStates3 = { 0, 0, 0, 0, 0, 0, 0, 0 }; SQLWarning[] theFinalStates4 = { null, null, null, null, null, null, null, null }; Exception[] theExceptions = { null, null, null, null, null, null, null, null }; SQLWarning aSQLWarning; int loopCount = init1.length; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(init1[i]); if (theExceptions[i] != null) { fail(); } assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testSQLWarningString /* * ConstructorTest */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "SQLWarning", args = {java.lang.String.class, java.lang.String.class} ) public void testSQLWarningStringString() { String[] init1 = { "a", "1", "valid1", "----", "&valid*", null, "", "\u0000", "a", "a", "a" }; String[] init2 = { "a", "1", "valid1", "----", "&valid*", "a", "a", "a", null, "", "\u0000" }; String[] theFinalStates1 = init1; String[] theFinalStates2 = init2; int[] theFinalStates3 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; SQLWarning[] theFinalStates4 = { null, null, null, null, null, null, null, null, null, null, null }; Exception[] theExceptions = { null, null, null, null, null, null, null, null, null, null, null }; SQLWarning aSQLWarning; int loopCount = init1.length; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(init1[i], init2[i]); if (theExceptions[i] != null) { fail(); } assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testSQLWarningStringString /* * ConstructorTest */ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "SQLWarning", args = {java.lang.String.class, java.lang.String.class, int.class} ) public void testSQLWarningStringStringint() { String[] init1 = { "a", "1", "valid1", "----", "&valid*", "----", "----", null, "", "\u0000", "a", "a", "a" }; String[] init2 = { "a", "1", "valid1", "----", "&valid*", "valid1", "----", "a", "a", "a", null, "", "\u0000" }; int[] init3 = { -2147483648, 2147483647, 0, 1412862821, -733923487, 488067774, -1529953616, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648 }; String[] theFinalStates1 = init1; String[] theFinalStates2 = init2; int[] theFinalStates3 = init3; SQLWarning[] theFinalStates4 = { null, null, null, null, null, null, null, null, null, null, null, null, null }; Exception[] theExceptions = { null, null, null, null, null, null, null, null, null, null, null, null, null }; SQLWarning aSQLWarning; int loopCount = init1.length; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(init1[i], init2[i], init3[i]); if (theExceptions[i] != null) { fail(); } assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testSQLWarningStringStringint /* * Method test for getNextWarning */ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "getNextWarning", args = {} ) public void testGetNextWarning() { SQLWarning aSQLWarning; String[] init1 = { "a", "1", "valid1", "----", "&valid*" }; SQLWarning theReturn; SQLWarning[] theReturns = { null }; String[] theFinalStates1 = init1; String[] theFinalStates2 = { null }; int[] theFinalStates3 = { 0 }; SQLWarning[] theFinalStates4 = { null }; Exception[] theExceptions = { null }; int loopCount = 1; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(init1[i]); theReturn = aSQLWarning.getNextWarning(); if (theExceptions[i] != null) { fail(i + "Exception missed"); } assertEquals(i + "Return value mismatch", theReturn, theReturns[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testGetNextWarning /* * Method test for setNextWarning */ @TestTargets({ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "setNextWarning", args = {java.sql.SQLWarning.class} ), @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "getNextWarning", args = {} ) }) public void testSetNextWarningSQLWarning() { SQLWarning[] parm1 = { new SQLWarning(), null }; SQLWarning aSQLWarning; String[] init1 = { "a", "1" }; String[] theFinalStates1 = init1; String[] theFinalStates2 = { null, null }; int[] theFinalStates3 = { 0, 0 }; SQLWarning[] theFinalStates4 = parm1; Exception[] theExceptions = { null, null }; int loopCount = parm1.length; for (int i = 0; i < loopCount; i++) { try { aSQLWarning = new SQLWarning(init1[i]); aSQLWarning.setNextWarning(parm1[i]); if (theExceptions[i] != null) { fail(i + "Exception missed"); } assertEquals(i + " Final state mismatch", aSQLWarning .getMessage(), theFinalStates1[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getSQLState(), theFinalStates2[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getErrorCode(), theFinalStates3[i]); assertEquals(i + " Final state mismatch", aSQLWarning .getNextWarning(), theFinalStates4[i]); } catch (Exception e) { if (theExceptions[i] == null) { fail(i + "Unexpected exception"); } assertEquals(i + "Exception mismatch", e.getClass(), theExceptions[i].getClass()); assertEquals(i + "Exception mismatch", e.getMessage(), theExceptions[i].getMessage()); } // end try } // end for } // end method testSetNextWarningSQLWarning /** * @tests java.sql.SQLWarning#setNextWarning(java.sql.SQLWarning) */ @TestTargets({ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "setNextWarning", args = {java.sql.SQLWarning.class} ), @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "", method = "getNextWarning", args = {} ) }) public void test_setNextWarning_SQLWarning() { SQLWarning sw = new SQLWarning("reason", "SQLState", 0); SQLWarning sw1 = new SQLWarning("reason", "SQLState", 1); SQLWarning sw2 = new SQLWarning("reason", "SQLState", 2); SQLWarning sw3 = new SQLWarning("reason", "SQLState", 3); SQLException se = new SQLException("reason", "SQLState", 4); sw.setNextWarning(sw1); assertSame(sw1, sw.getNextException()); assertSame(sw1, sw.getNextWarning()); sw.setNextWarning(sw2); assertSame(sw2, sw1.getNextException()); assertSame(sw2, sw1.getNextWarning()); sw.setNextException(sw3); assertSame(sw3, sw2.getNextException()); assertSame(sw3, sw2.getNextWarning()); sw.setNextException(se); assertSame(se, sw3.getNextException()); try { sw3.getNextWarning(); fail("should throw Error"); } catch (Error e) { //expected } } /** * @tests serialization/deserialization compatibility. */ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "Serialization test", method = "SQLWarning", args = {} ) public void testSerializationSelf() throws Exception { SQLWarning object = new SQLWarning(); SerializationTest.verifySelf(object, SQLWARNING_COMPARATOR); } /** * @tests serialization/deserialization compatibility with RI. */ @TestTargetNew( level = TestLevel.PARTIAL_COMPLETE, notes = "Serialization test", method = "SQLWarning", args = {java.lang.String.class, java.lang.String.class, int.class} ) public void testSerializationCompatibility() throws Exception { SQLWarning object = new SQLWarning(); SQLWarning nextSQLWarning = new SQLWarning("nextReason", "nextSQLState", 10); object.setNextWarning(nextSQLWarning); SerializationTest.verifyGolden(this, object, SQLWARNING_COMPARATOR); } // comparator for SQLWarning objects private static final SerializableAssert SQLWARNING_COMPARATOR = new SerializableAssert() { public void assertDeserialized(Serializable initial, Serializable deserialized) { // do common checks for all throwable objects SerializationTest.THROWABLE_COMPARATOR.assertDeserialized(initial, deserialized); SQLWarning initThr = (SQLWarning) initial; SQLWarning dserThr = (SQLWarning) deserialized; // verify getNextWarning() method if (initThr.getNextWarning() == null) { assertNull(dserThr.getNextWarning()); } else { // use the same comparator SQLWARNING_COMPARATOR.assertDeserialized(initThr .getNextWarning(), dserThr.getNextWarning()); } } }; } // end class SQLWarningTest