abdullah alamoudi has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2683

Change subject: [NO ISSUE][TEST] Use reflection in ADMDataParserTest
......................................................................

[NO ISSUE][TEST] Use reflection in ADMDataParserTest

- user model changes: no
- storage format changes: no
- interface changes: no

Change-Id: I42d4a6eebe76d2f1730f8046329f658c40407f14
---
M 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
1 file changed, 31 insertions(+), 12 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/83/2683/1

diff --git 
a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
 
b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
index a4e4c33..a4194a1 100644
--- 
a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
+++ 
b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
@@ -24,10 +24,13 @@
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.nio.ByteBuffer;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.asterix.external.parser.ADMDataParser;
+import org.apache.asterix.external.parser.AbstractDataParser;
 import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
 import org.apache.asterix.om.base.AGeometry;
 import org.apache.asterix.om.base.AInt32;
@@ -45,12 +48,10 @@
 
 import com.esri.core.geometry.ogc.OGCPoint;
 
-import junit.extensions.PA;
-
 public class ADMDataParserTest {
 
     @Test
-    public void test() throws IOException {
+    public void test() throws IOException, NoSuchMethodException, 
SecurityException, NoSuchFieldException {
         char[][] dates = toChars(
                 new String[] { "-9537-08-04", "9656-06-03", "-9537-04-04", 
"9656-06-04", "-9537-10-04", "9626-09-05" });
         AMutableDate[] parsedDates =
@@ -71,6 +72,27 @@
                         new AMutableDateTime(-45286270768513L), new 
AMutableDateTime(151729886421653L),
                         new AMutableDateTime(5047449515758L), new 
AMutableDateTime(210721439419691L) };
 
+        Method parseDateMethod = 
AbstractDataParser.class.getDeclaredMethod("parseDate", char[].class, int.class,
+                int.class, DataOutput.class);
+        parseDateMethod.setAccessible(true);
+
+        Field aDateField = AbstractDataParser.class.getDeclaredField("aDate");
+        aDateField.setAccessible(true);
+
+        Method parseTimeMethod = 
AbstractDataParser.class.getDeclaredMethod("parseTime", char[].class, int.class,
+                int.class, DataOutput.class);
+        parseTimeMethod.setAccessible(true);
+
+        Field aTimeField = AbstractDataParser.class.getDeclaredField("aTime");
+        aTimeField.setAccessible(true);
+
+        Method parseDateTimeMethod = 
AbstractDataParser.class.getDeclaredMethod("parseDateTime", char[].class,
+                int.class, int.class, DataOutput.class);
+        parseDateTimeMethod.setAccessible(true);
+
+        Field aDateTimeField = 
AbstractDataParser.class.getDeclaredField("aDateTime");
+        aDateTimeField.setAccessible(true);
+
         Thread[] threads = new Thread[16];
         AtomicInteger errorCount = new AtomicInteger(0);
         for (int i = 0; i < threads.length; ++i) {
@@ -86,25 +108,22 @@
                         while (round++ < 10000) {
                             // Test parseDate.
                             for (int index = 0; index < dates.length; ++index) 
{
-                                PA.invokeMethod(parser, "parseDate(char[], 
int, int, java.io.DataOutput)", dates[index],
-                                        0, dates[index].length, dos);
-                                AMutableDate aDate = (AMutableDate) 
PA.getValue(parser, "aDate");
+                                parseDateMethod.invoke(parser, dates[index], 
0, dates[index].length, dos);
+                                AMutableDate aDate = (AMutableDate) 
aDateField.get(parser);
                                 
Assert.assertTrue(aDate.equals(parsedDates[index]));
                             }
 
                             // Tests parseTime.
                             for (int index = 0; index < times.length; ++index) 
{
-                                PA.invokeMethod(parser, "parseTime(char[], 
int, int, java.io.DataOutput)", times[index],
-                                        0, times[index].length, dos);
-                                AMutableTime aTime = (AMutableTime) 
PA.getValue(parser, "aTime");
+                                parseTimeMethod.invoke(parser, times[index], 
0, times[index].length, dos);
+                                AMutableTime aTime = (AMutableTime) 
aTimeField.get(parser);
                                 
Assert.assertTrue(aTime.equals(parsedTimes[index]));
                             }
 
                             // Tests parseDateTime.
                             for (int index = 0; index < dateTimes.length; 
++index) {
-                                PA.invokeMethod(parser, "parseDateTime(char[], 
int, int, java.io.DataOutput)",
-                                        dateTimes[index], 0, 
dateTimes[index].length, dos);
-                                AMutableDateTime aDateTime = 
(AMutableDateTime) PA.getValue(parser, "aDateTime");
+                                parseDateTimeMethod.invoke(parser, 
dateTimes[index], 0, dateTimes[index].length, dos);
+                                AMutableDateTime aDateTime = 
(AMutableDateTime) aDateTimeField.get(parser);
                                 
Assert.assertTrue(aDateTime.equals(parsedDateTimes[index]));
                             }
                         }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2683
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I42d4a6eebe76d2f1730f8046329f658c40407f14
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>

Reply via email to