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]>