// Path: kawala-common/src/main/java/com/kaching/platform/common/reflect/ReflectUtils.java
// public static Object getField(Object obj, String name) {
//   try {
//     Class<? extends Object> klass = obj.getClass();
//     do {
//       try {
//         Field field = klass.getDeclaredField(name);
//         field.setAccessible(true);
//         return field.get(obj);
//       } catch (NoSuchFieldException e) {
//         klass = klass.getSuperclass();
//       }
//     } while (klass != null);
//     throw new RuntimeException(); // true no such field exception
//   } catch (SecurityException e) {
//     throw new RuntimeException(e);
//   } catch (IllegalArgumentException e) {
//     throw new RuntimeException(e);
//   } catch (IllegalAccessException e) {
//     throw new RuntimeException(e);
//   }
// }


import static com.kaching.platform.common.reflect.ReflectUtils.getField;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
 * Copyright 2010 Wealthfront Inc. Licensed 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 com.kaching.platform.common.reflect;



public class ReflectUtilsTest {

  @Test
  public void getField1() {
// Path: kawala-common/src/main/java/com/kaching/platform/common/reflect/ReflectUtils.java
// public static Object getField(Object obj, String name) {
//   try {
//     Class<? extends Object> klass = obj.getClass();
//     do {
//       try {
//         Field field = klass.getDeclaredField(name);
//         field.setAccessible(true);
//         return field.get(obj);
//       } catch (NoSuchFieldException e) {
//         klass = klass.getSuperclass();
//       }
//     } while (klass != null);
//     throw new RuntimeException(); // true no such field exception
//   } catch (SecurityException e) {
//     throw new RuntimeException(e);
//   } catch (IllegalArgumentException e) {
//     throw new RuntimeException(e);
//   } catch (IllegalAccessException e) {
//     throw new RuntimeException(e);
//   }
// }


// Path: kawala-common-tests/src/test/java/com/kaching/platform/common/reflect/ReflectUtilsTest.java
import static com.kaching.platform.common.reflect.ReflectUtils.getField;
import static org.junit.Assert.assertEquals;
import org.junit.Test;

/**
 * Copyright 2010 Wealthfront Inc. Licensed 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 com.kaching.platform.common.reflect;



public class ReflectUtilsTest {

  @Test
  public void getField1() {
    assertEquals("child", getField(new Child(), "field1"));