CarpaccioHelper { public static <T extends View> T findParentOfClass(View view, Class<T> theClass) { if (theClass.isAssignableFrom(view.getClass())) return (T) view; else if (view.getParent() != null && view.getParent() instanceof View) return findParentOfClass((View) view.getParent(), theClass); else return null; }  static Object construct(String name); static Class[] getClassesWithHeaderClass(Object[] args, Class headerClass); static Class[] getClasses(Object[] args); static Object[] getArgumentsWithView(View view, Class[] parametersType, Object[] args); static String getFunctionName(String tag); static String[] getAttributes(String tag); static Object removeTag(View view, String actionName); static String[] trim(String[] strings); static ObjectAndMethod findObjectWithThisMethod(List<Object> objects, String function, int numberOfParams); static Method callFunction(Object object, String name, View view, Object[] args); static Method callMethod(Object object, Method method, String name, View view, Object[] args); static T callFunction(Object object, String name); static T callFunction(Object object, String name, Object[] args); static Integer stringToInt(String s); static Double stringToDouble(String s); static Long stringToLong(String s); static Float stringToFloat(String s); static boolean isNumber(Class destinationClass); static Object stringToNumber(String s, Class destinationClass); static T findParentOfClass(View view, Class<T> theClass); static Carpaccio findParentCarpaccio(View view); static Carpaccio registerToParentCarpaccio(View view); static String TAG; static boolean LOG_FAILURES; }
@Test public void testFindParentOfClass() throws Exception { LinearLayout linearLayout = mock(LinearLayout.class); ViewGroup viewGroup = mock(ViewGroup.class); View view = mock(View.class); doReturn(viewGroup).when(view).getParent(); doReturn(linearLayout).when(viewGroup).getParent(); assertEquals(linearLayout, CarpaccioHelper.findParentOfClass(view, LinearLayout.class)); }
@Test public void testFindParentOfClass_fail() throws Exception { LinearLayout linearLayout = mock(LinearLayout.class); ViewGroup viewGroup = mock(ViewGroup.class); View view = mock(View.class); doReturn(viewGroup).when(view).getParent(); doReturn(linearLayout).when(viewGroup).getParent(); assertNull(CarpaccioHelper.findParentOfClass(view, RelativeLayout.class)); }