METRON-2076 Fixed up flakey stellar timezone test (tigerquoll via mmiklavc) closes apache/metron#1487
diff --git a/metron-stellar/stellar-common/src/test/java/org/apache/metron/stellar/dsl/functions/DateFunctionsTest.java b/metron-stellar/stellar-common/src/test/java/org/apache/metron/stellar/dsl/functions/DateFunctionsTest.java
index 48b2995..ce8d5ce 100644
--- a/metron-stellar/stellar-common/src/test/java/org/apache/metron/stellar/dsl/functions/DateFunctionsTest.java
+++ b/metron-stellar/stellar-common/src/test/java/org/apache/metron/stellar/dsl/functions/DateFunctionsTest.java
@@ -28,7 +28,9 @@
import org.junit.Before;
import org.junit.Test;
+import java.time.Instant;
import java.time.LocalDate;
+import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.HashMap;
@@ -63,13 +65,13 @@
@Before
public void setup() {
- variables.put("epoch", AUG2016);
+ variables.put("test_datetime", AUG2016);
calendar = Calendar.getInstance();
}
@Test
public void testDayOfWeek() {
- Object result = run("DAY_OF_WEEK(epoch)");
+ Object result = run("DAY_OF_WEEK(test_datetime)");
assertEquals(Calendar.THURSDAY, result);
}
@@ -92,7 +94,7 @@
@Test
public void testWeekOfMonth() {
- Object result = run("WEEK_OF_MONTH(epoch)");
+ Object result = run("WEEK_OF_MONTH(test_datetime)");
assertEquals(4, result);
}
@@ -115,7 +117,7 @@
@Test
public void testMonth() {
- Object result = run("MONTH(epoch)");
+ Object result = run("MONTH(test_datetime)");
assertEquals(Calendar.AUGUST, result);
}
@@ -138,7 +140,7 @@
@Test
public void testYear() {
- Object result = run("YEAR(epoch)");
+ Object result = run("YEAR(test_datetime)");
assertEquals(2016, result);
}
@@ -161,7 +163,7 @@
@Test
public void testDayOfMonth() {
- Object result = run("DAY_OF_MONTH(epoch)");
+ Object result = run("DAY_OF_MONTH(test_datetime)");
assertEquals(25, result);
}
@@ -184,7 +186,7 @@
@Test
public void testWeekOfYear() {
- Object result = run("WEEK_OF_YEAR(epoch)");
+ Object result = run("WEEK_OF_YEAR(test_datetime)");
calendar.setTimeInMillis(AUG2016);
assertEquals(calendar.get(Calendar.WEEK_OF_YEAR), result);
}
@@ -208,7 +210,7 @@
@Test
public void testDayOfYear() {
- Object result = run("DAY_OF_YEAR(epoch)");
+ Object result = run("DAY_OF_YEAR(test_datetime)");
assertEquals(238, result);
}
@@ -231,7 +233,7 @@
@Test
public void testDateFormat() {
- Object result = run("DATE_FORMAT('EEE MMM dd yyyy hh:mm:ss zzz', epoch, 'EST')");
+ Object result = run("DATE_FORMAT('EEE MMM dd yyyy hh:mm:ss zzz', test_datetime, 'EST')");
assertEquals("Thu Aug 25 2016 08:27:10 EST", result);
}
@@ -255,8 +257,11 @@
@Test
public void testDateFormatDefaultTimezone() {
- Object result = run("DATE_FORMAT('EEE MMM dd yyyy hh:mm:ss zzzz', epoch)");
- assertTrue(result.toString().endsWith(TimeZone.getDefault().getDisplayName(true, 1)));
+ Object result = run("DATE_FORMAT('EEE MMM dd yyyy hh:mm:ss zzzz', test_datetime)");
+
+ boolean inDaylightSavings = ZoneId.of( TimeZone.getDefault().getID() )
+ .getRules().isDaylightSavings(Instant.ofEpochMilli(AUG2016) );
+ assertTrue(result.toString().endsWith(TimeZone.getDefault().getDisplayName(inDaylightSavings, 1)));
}
/**
@@ -269,6 +274,6 @@
@Test(expected = ParseException.class)
public void testDateFormatInvalid() {
- Object result = run("DATE_FORMAT('INVALID DATE FORMAT', epoch, 'EST')");
+ Object result = run("DATE_FORMAT('INVALID DATE FORMAT', test_datetime, 'EST')");
}
}