/luni/src/test/java/org/apache/harmony/sql/tests/java/sql/BatchUpdateExceptionTest.java
https://github.com/MIPS/libcore · Java · 438 lines · 329 code · 56 blank · 53 comment · 30 complexity · 6723516f21e99f763683a2d1884abdab MD5 · raw file
- /*
- * 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.BatchUpdateException;
- import java.util.Arrays;
- import junit.framework.TestCase;
- import org.apache.harmony.testframework.serialization.SerializationTest;
- import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
- @TestTargetClass(BatchUpdateException.class)
- public class BatchUpdateExceptionTest extends TestCase {
- /*
- * ConstructorTest
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "BatchUpdateException",
- args = {}
- )
- public void testBatchUpdateException() {
- int[] theFinalStates1 = { 0 }; // Error Code state
- int[][] theFinalStates2 = { null }; // Update Counts array state
- String[] theFinalStates3 = { null }; // SQL State state value
- String[] theFinalStates4 = { null }; // Message state
- Exception[] theExceptions = { null };
- BatchUpdateException aBatchUpdateException;
- int loopCount = 1;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException();
- if (theExceptions[i] != null) {
- fail();
- }
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testBatchUpdateException
- /*
- * ConstructorTest
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "BatchUpdateException",
- args = {int[].class}
- )
- public void testBatchUpdateExceptionintArray() {
- int[][] init1 = { { 1, 2, 3 }, null };
- int[] theFinalStates1 = { 0, 0 }; // Error Code state
- int[][] theFinalStates2 = init1; // Update Counts array state
- String[] theFinalStates3 = { null, null }; // SQL State state value
- String[] theFinalStates4 = { null, null }; // Message state
- Exception[] theExceptions = { null, null };
- BatchUpdateException aBatchUpdateException;
- int loopCount = init1.length;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException(init1[i]);
- if (theExceptions[i] != null) {
- fail();
- }
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testBatchUpdateExceptionintArray
- /*
- * ConstructorTest
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "BatchUpdateException",
- args = {java.lang.String.class, int[].class}
- )
- public void testBatchUpdateExceptionStringintArray() {
- String[] init1 = { "a", "1", "valid1", "----", "&valid*", null, "",
- ".", "a" };
- int[][] init2 = { { 1, 2, 3 }, {}, { 3 }, null, { 5, 5 }, { 6 },
- { 121, 2, 1 }, { 1 }, { 1, 2 } };
- int[] theFinalStates1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // Error Code
- // state
- // Update Counts array state
- int[][] theFinalStates2 = init2;
- // SQL State state value
- String[] theFinalStates3 = { null, null, null, null, null, null, null,
- null, null };
- String[] theFinalStates4 = init1; // Message state
- Exception[] theExceptions = { null, null, null, null, null, null, null,
- null, null };
- BatchUpdateException aBatchUpdateException;
- int loopCount = init1.length;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException(init1[i],
- init2[i]);
- if (theExceptions[i] != null) {
- fail();
- }
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testBatchUpdateExceptionStringintArray
- /*
- * ConstructorTest
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "BatchUpdateException",
- args = {java.lang.String.class, java.lang.String.class, int[].class}
- )
- public void testBatchUpdateExceptionStringStringintArray() {
- String[] init1 = { "a", "1", "valid1", "----", "&valid*", null, "",
- ".", "a", "a" };
- String[] init2 = { "a", "1", "valid1", "----", "&valid*", "a", null,
- "", ".", "a" };
- int[][] init3 = { { 1, 2, 3 }, {}, { 3 }, { 5, 5 }, { 6 },
- { 121, 2, 1 }, { 1 }, { 1, 2 }, { 1 }, { 2 }, null };
- int[] theFinalStates1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // Error
- // Code
- // state
- // Update Counts array state
- int[][] theFinalStates2 = init3;
- // SQL State state value
- String[] theFinalStates3 = init2;
- String[] theFinalStates4 = init1; // Message state
- Exception[] theExceptions = { null, null, null, null, null, null, null,
- null, null, null, null };
- BatchUpdateException aBatchUpdateException;
- int loopCount = init1.length;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException(init1[i],
- init2[i], init3[i]);
- if (theExceptions[i] != null) {
- fail();
- }
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testBatchUpdateExceptionStringStringintArray
- /*
- * ConstructorTest
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "BatchUpdateException",
- args = {java.lang.String.class, java.lang.String.class, int.class, int[].class}
- )
- public void testBatchUpdateExceptionStringStringintintArray() {
- String[] init1 = { "a", "1", "valid1", "----", "&valid*", null, "",
- ".", "a", "a" };
- String[] init2 = { "a", "1", "valid1", "----", "&valid*", "a", null,
- "", ".", "a" };
- int[] init3 = { -2147483648, 2147483647, 0, -492417162, -156220255,
- -173012890, -631026360, -2147483648, -2147483648, -2147483648,
- -2147483648 };
- int[][] init4 = { { 1, 2, 3 }, {}, { 3 }, { 5, 5 }, { 6 },
- { 121, 2, 1 }, { 1 }, { 1, 2 }, { 1 }, { 2 }, null };
- int[] theFinalStates1 = init3; // Error Code state
- // Update Counts array state
- int[][] theFinalStates2 = init4;
- // SQL State state value
- String[] theFinalStates3 = init2;
- String[] theFinalStates4 = init1; // Message state
- Exception[] theExceptions = { null, null, null, null, null, null, null,
- null, null, null, null };
- BatchUpdateException aBatchUpdateException;
- int loopCount = init1.length;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException(init1[i],
- init2[i], init3[i], init4[i]);
- if (theExceptions[i] != null) {
- fail();
- }
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testBatchUpdateExceptionStringStringintintArray
- /*
- * Method test for getUpdateCounts
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getUpdateCounts",
- args = {}
- )
- public void testGetUpdateCounts() {
- BatchUpdateException aBatchUpdateException;
- int[][] init1 = { { 1, 2, 3 }, {}, null };
- int[] theReturn;
- int[][] theReturns = init1;
- int[] theFinalStates1 = { 0, 0, 0 }; // Error Code state
- int[][] theFinalStates2 = init1; // Update Counts array state
- String[] theFinalStates3 = { null, null, null }; // SQL State state
- // value
- String[] theFinalStates4 = { null, null, null }; // Message state
- Exception[] theExceptions = { null, null, null };
- int loopCount = init1.length;
- for (int i = 0; i < loopCount; i++) {
- try {
- aBatchUpdateException = new BatchUpdateException(init1[i]);
- theReturn = aBatchUpdateException.getUpdateCounts();
- if (theExceptions[i] != null) {
- fail(i + "Exception missed");
- }
- assertEquals(i + "Return value mismatch", theReturn,
- theReturns[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getErrorCode(),
- theFinalStates1[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getUpdateCounts(),
- theFinalStates2[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getSQLState(), theFinalStates3[i]);
- assertEquals(i + " Final state mismatch: ",
- aBatchUpdateException.getMessage(), 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 testGetUpdateCounts
- /**
- * @tests serialization/deserialization compatibility.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "Serialization test",
- method = "!SerializationSelf",
- args = {}
- )
- public void testSerializationSelf() throws Exception {
- BatchUpdateException object = new BatchUpdateException();
- SerializationTest.verifySelf(object, BATCHUPDATEEXCEPTION_COMPARATOR);
- }
- /**
- * @tests serialization/deserialization compatibility with RI.
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "Serialization test",
- method = "!SerializationGolden",
- args = {}
- )
- public void testSerializationCompatibility() throws Exception {
- int vendorCode = 10;
- int[] updateCounts = { 1, 2, 3, 4 };
- BatchUpdateException object = new BatchUpdateException("reason",
- "SQLState", vendorCode, updateCounts);
- SerializationTest.verifyGolden(this, object,
- BATCHUPDATEEXCEPTION_COMPARATOR);
- }
- // comparator for BatchUpdateException field updateCounts
- private static final SerializableAssert BATCHUPDATEEXCEPTION_COMPARATOR = new SerializableAssert() {
- public void assertDeserialized(Serializable initial,
- Serializable deserialized) {
- // do common checks for all throwable objects
- SerializationTest.THROWABLE_COMPARATOR.assertDeserialized(initial,
- deserialized);
- BatchUpdateException initThr = (BatchUpdateException) initial;
- BatchUpdateException dserThr = (BatchUpdateException) deserialized;
- // verify updateCounts
- int[] initUpdateCounts = initThr.getUpdateCounts();
- int[] dserUpdateCounts = dserThr.getUpdateCounts();
- assertTrue(Arrays.equals(initUpdateCounts, dserUpdateCounts));
- }
- };
- } // end class BatchUpdateExceptionTest