abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2685
Change subject: [NO ISSUE][TEST] Use reflection in ADMDataParserTest
......................................................................
[NO ISSUE][TEST] Use reflection in ADMDataParserTest
Change-Id: I1f88684693230156f27327882f65f05ea3105a8e
---
M
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/parser/test/ADMDataParserTest.java
1 file changed, 37 insertions(+), 13 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/85/2685/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 f06528e..1c32aa6 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,27 @@
import java.io.DataOutput;
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;
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 +61,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) {
@@ -70,25 +97,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],
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(java.lang.String, java.io.DataOutput)", times[index],
- 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(java.lang.String, java.io.DataOutput)",
- dateTimes[index], 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]));
}
}
@@ -113,4 +137,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: newchange
Gerrit-Change-Id: I1f88684693230156f27327882f65f05ea3105a8e
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: abdullah alamoudi <[email protected]>