1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package org.apache.harmony.sql.tests.java.sql; 19 20import java.lang.reflect.Field; 21import java.lang.reflect.Modifier; 22import java.util.HashMap; 23 24import junit.framework.TestCase; 25 26public class StatementTest extends TestCase { 27 28 /* 29 * Public statics test 30 */ 31 public void testPublicStatics() { 32 33 HashMap<String, Integer> thePublicStatics = new HashMap<String, Integer>(); 34 thePublicStatics.put("NO_GENERATED_KEYS", new Integer(2)); 35 thePublicStatics.put("RETURN_GENERATED_KEYS", new Integer(1)); 36 thePublicStatics.put("EXECUTE_FAILED", new Integer(-3)); 37 thePublicStatics.put("SUCCESS_NO_INFO", new Integer(-2)); 38 thePublicStatics.put("CLOSE_ALL_RESULTS", new Integer(3)); 39 thePublicStatics.put("KEEP_CURRENT_RESULT", new Integer(2)); 40 thePublicStatics.put("CLOSE_CURRENT_RESULT", new Integer(1)); 41 42 /* 43 * System.out.println( "NO_GENERATED_KEYS: " + 44 * Statement.NO_GENERATED_KEYS ); System.out.println( 45 * "RETURN_GENERATED_KEYS: " + Statement.RETURN_GENERATED_KEYS ); 46 * System.out.println( "EXECUTE_FAILED: " + Statement.EXECUTE_FAILED ); 47 * System.out.println( "SUCCESS_NO_INFO: " + Statement.SUCCESS_NO_INFO ); 48 * System.out.println( "CLOSE_ALL_RESULTS: " + 49 * Statement.CLOSE_ALL_RESULTS ); System.out.println( 50 * "KEEP_CURRENT_RESULT: " + Statement.KEEP_CURRENT_RESULT ); 51 * System.out.println( "CLOSE_CURRENT_RESULT: " + 52 * Statement.CLOSE_CURRENT_RESULT ); 53 */ 54 55 Class<?> statementClass; 56 try { 57 statementClass = Class.forName("java.sql.Statement"); 58 } catch (ClassNotFoundException e) { 59 fail("java.sql.Statement class not found!"); 60 return; 61 } // end try 62 63 Field[] theFields = statementClass.getDeclaredFields(); 64 int requiredModifier = Modifier.PUBLIC + Modifier.STATIC 65 + Modifier.FINAL; 66 67 int countPublicStatics = 0; 68 for (Field element : theFields) { 69 String fieldName = element.getName(); 70 int theMods = element.getModifiers(); 71 if (Modifier.isPublic(theMods) && Modifier.isStatic(theMods)) { 72 try { 73 Object fieldValue = element.get(null); 74 Object expectedValue = thePublicStatics.get(fieldName); 75 if (expectedValue == null) { 76 fail("Field " + fieldName + " missing!"); 77 } // end 78 assertEquals("Field " + fieldName + " value mismatch: ", 79 expectedValue, fieldValue); 80 assertEquals("Field " + fieldName + " modifier mismatch: ", 81 requiredModifier, theMods); 82 countPublicStatics++; 83 } catch (IllegalAccessException e) { 84 fail("Illegal access to Field " + fieldName); 85 } // end try 86 } // end if 87 } // end for 88 89 } // end method testPublicStatics 90 91} // end class StatementTest 92 93