From e81de49429e1c29385baffc7ce17b7188badc49a Mon Sep 17 00:00:00 2001 From: Earl Ou Date: Thu, 9 Aug 2012 14:17:33 +0800 Subject: A simple ExifReader and its test Change-Id: I1a30d24591bbdab288e04e3705ece388b533f247 --- .../com/android/gallery3d/exif/ExifTestRunner.java | 35 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'tests/src/com/android/gallery3d/exif/ExifTestRunner.java') diff --git a/tests/src/com/android/gallery3d/exif/ExifTestRunner.java b/tests/src/com/android/gallery3d/exif/ExifTestRunner.java index 7f7a228e5..022597d73 100644 --- a/tests/src/com/android/gallery3d/exif/ExifTestRunner.java +++ b/tests/src/com/android/gallery3d/exif/ExifTestRunner.java @@ -16,17 +16,22 @@ package com.android.gallery3d.exif; +import android.test.InstrumentationTestCase; import android.test.InstrumentationTestRunner; import android.test.InstrumentationTestSuite; +import android.util.Log; import com.android.gallery3d.tests.R; import junit.framework.TestCase; import junit.framework.TestSuite; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ExifTestRunner extends InstrumentationTestRunner { + private static final String TAG = "ExifTestRunner"; + private static final int[] IMG_RESOURCE = { R.raw.galaxy_nexus }; @@ -37,16 +42,36 @@ public class ExifTestRunner extends InstrumentationTestRunner { @Override public TestSuite getAllTests() { TestSuite suite = new InstrumentationTestSuite(this); - for (Method method : ExifParserTest.class.getDeclaredMethods()) { + getAllTestFromTestCase(ExifParserTest.class, suite); + getAllTestFromTestCase(ExifReaderTest.class, suite); + return suite; + } + + private void getAllTestFromTestCase(Class testClass, + TestSuite suite) { + for (Method method : testClass.getDeclaredMethods()) { if (method.getName().startsWith("test") && method.getParameterTypes().length == 0) { for (int i = 0; i < IMG_RESOURCE.length; i++) { - TestCase test = new ExifParserTest(IMG_RESOURCE[i], EXIF_DATA_RESOURCE[i]); - test.setName(method.getName()); - suite.addTest(test); + TestCase test; + try { + test = testClass.getDeclaredConstructor(int.class, int.class). + newInstance(IMG_RESOURCE[i], EXIF_DATA_RESOURCE[i]); + test.setName(method.getName()); + suite.addTest(test); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Failed to create test case", e); + } catch (InstantiationException e) { + Log.e(TAG, "Failed to create test case", e); + } catch (IllegalAccessException e) { + Log.e(TAG, "Failed to create test case", e); + } catch (InvocationTargetException e) { + Log.e(TAG, "Failed to create test case", e); + } catch (NoSuchMethodException e) { + Log.e(TAG, "Failed to create test case", e); + } } } } - return suite; } @Override -- cgit v1.2.3