Michael Blow has submitted this change and it was merged.

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


[NO ISSUE][TEST] Use reflection in ADMDataParserTest

Change-Id: I1f88684693230156f27327882f65f05ea3105a8e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2685
Sonar-Qube: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Michael Blow <[email protected]>
---
M 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
1 file changed, 32 insertions(+), 13 deletions(-)

Approvals:
  Anon. E. Moose #1000171: 
  Jenkins: Verified; No violations found; Verified
  Michael Blow: Looks good to me, approved



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 f06528e..1485f4f 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
@@ -22,21 +22,22 @@
 import java.io.DataOutput;
 import java.io.DataOutputStream;
 import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.asterix.external.parser.ADMDataParser;
+import org.apache.asterix.external.parser.AbstractDataParser;
 import org.apache.asterix.om.base.AMutableDate;
 import org.apache.asterix.om.base.AMutableDateTime;
 import org.apache.asterix.om.base.AMutableTime;
 import org.junit.Assert;
 import org.junit.Test;
 
-import junit.extensions.PA;
-
 public class ADMDataParserTest {
 
     @Test
-    public void test() throws IOException {
+    public void test() throws IOException, NoSuchMethodException, 
SecurityException, NoSuchFieldException {
         String[] dates = { "-9537-08-04", "9656-06-03", "-9537-04-04", 
"9656-06-04", "-9537-10-04", "9626-09-05" };
         AMutableDate[] parsedDates =
                 new AMutableDate[] { new AMutableDate(-4202630), new 
AMutableDate(2807408), new AMutableDate(-4202752),
@@ -55,6 +56,27 @@
                         new AMutableDateTime(-45286270768513L), new 
AMutableDateTime(151729886421653L),
                         new AMutableDateTime(5047449515758L), new 
AMutableDateTime(210721439419691L) };
 
+        Method parseDateMethod =
+                AbstractDataParser.class.getDeclaredMethod("parseDate", 
String.class, DataOutput.class);
+        parseDateMethod.setAccessible(true);
+
+        Field aDateField = AbstractDataParser.class.getDeclaredField("aDate");
+        aDateField.setAccessible(true);
+
+        Method parseTimeMethod =
+                AbstractDataParser.class.getDeclaredMethod("parseTime", 
String.class, DataOutput.class);
+        parseTimeMethod.setAccessible(true);
+
+        Field aTimeField = AbstractDataParser.class.getDeclaredField("aTime");
+        aTimeField.setAccessible(true);
+
+        Method parseDateTimeMethod =
+                AbstractDataParser.class.getDeclaredMethod("parseDateTime", 
String.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) {
@@ -70,25 +92,22 @@
                         while (round++ < 10000) {
                             // Test parseDate.
                             for (int index = 0; index < dates.length; ++index) 
{
-                                PA.invokeMethod(parser, 
"parseDate(java.lang.String, java.io.DataOutput)", dates[index],
-                                        dos);
-                                AMutableDate aDate = (AMutableDate) 
PA.getValue(parser, "aDate");
+                                parseDateMethod.invoke(parser, dates[index], 
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(java.lang.String, java.io.DataOutput)", times[index],
-                                        dos);
-                                AMutableTime aTime = (AMutableTime) 
PA.getValue(parser, "aTime");
+                                parseTimeMethod.invoke(parser, times[index], 
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(java.lang.String, java.io.DataOutput)",
-                                        dateTimes[index], dos);
-                                AMutableDateTime aDateTime = 
(AMutableDateTime) PA.getValue(parser, "aDateTime");
+                                parseDateTimeMethod.invoke(parser, 
dateTimes[index], dos);
+                                AMutableDateTime aDateTime = 
(AMutableDateTime) aDateTimeField.get(parser);
                                 
Assert.assertTrue(aDateTime.equals(parsedDateTimes[index]));
                             }
                         }
@@ -113,4 +132,4 @@
         // Asserts no failure.
         Assert.assertTrue(errorCount.get() == 0);
     }
-}
+}
\ No newline at end of file

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1f88684693230156f27327882f65f05ea3105a8e
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: abdullah alamoudi <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin <[email protected]>
Gerrit-Reviewer: Ian Maxon <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>

Reply via email to