dan-s1 commented on code in PR #9196:
URL: https://github.com/apache/nifi/pull/9196#discussion_r1758917101


##########
nifi-commons/nifi-record/src/test/java/org/apache/nifi/serialization/record/field/ObjectTimestampFieldConverterTest.java:
##########
@@ -44,70 +50,108 @@ public class ObjectTimestampFieldConverterTest {
     private static final String DATE_TIME_NANOSECONDS = "2000-01-01 
12:00:00.123456789";
 
     @Test
-    public void testConvertFieldNull() {
+    void testConvertFieldNull() {
         final Timestamp timestamp = CONVERTER.convertField(null, 
DEFAULT_PATTERN, FIELD_NAME);
         assertNull(timestamp);
     }
 
     @Test
-    public void testConvertFieldTimestamp() {
+    void testConvertFieldTimestamp() {
         final Timestamp field = new Timestamp(System.currentTimeMillis());
         final Timestamp timestamp = CONVERTER.convertField(field, 
DEFAULT_PATTERN, FIELD_NAME);
         assertEquals(field, timestamp);
     }
 
     @Test
-    public void testConvertFieldDate() {
+    void testConvertFieldDate() {
         final Date field = new Date();
         final Timestamp timestamp = CONVERTER.convertField(field, 
DEFAULT_PATTERN, FIELD_NAME);
         assertEquals(field.getTime(), timestamp.getTime());
     }
 
     @Test
-    public void testConvertFieldLong() {
+    void testConvertFieldLong() {
         final long field = System.currentTimeMillis();
         final Timestamp timestamp = CONVERTER.convertField(field, 
DEFAULT_PATTERN, FIELD_NAME);
         assertEquals(field, timestamp.getTime());
     }
 
     @Test
-    public void testConvertFieldStringEmpty() {
+    void testConvertFieldStringEmpty() {
         final Timestamp timestamp = CONVERTER.convertField(EMPTY, 
DEFAULT_PATTERN, FIELD_NAME);
         assertNull(timestamp);
     }
 
     @Test
-    public void testConvertFieldStringFormatNull() {
+    void testConvertFieldStringFormatNull() {
         final long currentTime = System.currentTimeMillis();
         final String field = Long.toString(currentTime);
         final Timestamp timestamp = CONVERTER.convertField(field, 
Optional.empty(), FIELD_NAME);
         assertEquals(currentTime, timestamp.getTime());
     }
 
     @Test
-    public void testConvertFieldStringFormatNullNumberFormatException() {
+    void testConvertFieldStringFormatNullNumberFormatException() {
         final String field = String.class.getSimpleName();
         final FieldConversionException exception = 
assertThrows(FieldConversionException.class, () -> 
CONVERTER.convertField(field, Optional.empty(), FIELD_NAME));
         assertTrue(exception.getMessage().contains(field));
     }
 
     @Test
-    public void testConvertFieldStringFormatDefault() {
+    void testConvertFieldStringFormatDefault() {
         final Timestamp timestamp = CONVERTER.convertField(DATE_TIME_DEFAULT, 
DEFAULT_PATTERN, FIELD_NAME);
         final Timestamp expected = Timestamp.valueOf(DATE_TIME_DEFAULT);
         assertEquals(expected, timestamp);
     }
 
     @Test
-    public void testConvertFieldStringFormatCustomNanoseconds() {
+    void testConvertFieldStringFormatCustomNanoseconds() {
         final Timestamp timestamp = 
CONVERTER.convertField(DATE_TIME_NANOSECONDS, DATE_TIME_NANOSECONDS_PATTERN, 
FIELD_NAME);
         final Timestamp expected = Timestamp.valueOf(DATE_TIME_NANOSECONDS);
         assertEquals(expected, timestamp);
     }
 
     @Test
-    public void testConvertFieldStringFormatCustomFormatterException() {
+    void testConvertFieldStringFormatCustomFormatterException() {
         final FieldConversionException exception = 
assertThrows(FieldConversionException.class, () -> 
CONVERTER.convertField(DATE_TIME_DEFAULT, DATE_TIME_NANOSECONDS_PATTERN, 
FIELD_NAME));
         assertTrue(exception.getMessage().contains(DATE_TIME_DEFAULT));
     }
+
+    @Test
+    void testConvertFieldStringFormatWithTimeZone() {
+        final String originalTimestampHour = "12";
+        //NOTE: Antarctica/Casey is the timezone offset chosen in timestamp 
below
+        final String originalTimestamp = "2000-01-01 " + originalTimestampHour 
+ ":00:00+0800";
+        final Optional<String> timezonePattern = Optional.of("yyyy-MM-dd 
HH:mm:ssZ");
+        final Timestamp actual = CONVERTER.convertField(originalTimestamp, 
timezonePattern, FIELD_NAME);
+        final String actualString = actual.toString();
+
+        //Validate timezone is taken into account as the hour in the timestamp 
should be different per timezone offset
+        final String partialTimestampWithOriginalHour = " 
%s:".formatted(originalTimestampHour);
+        assertFalse(actualString.contains(partialTimestampWithOriginalHour));

Review Comment:
   The expected value will vary from timezone to timezone and in the case of 
the build there are three different time zones making it hard to provide a 
fixed value. Hence I chose to use `assertFalse` knowing that it cannot be the 
hour originally used. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to