1717package functions ;
1818
1919import static com .google .common .truth .Truth .assertThat ;
20+ import static org .mockito .Mockito .mock ;
21+ import static org .mockito .Mockito .when ;
2022
23+ import com .google .cloud .functions .Context ;
2124import com .google .common .testing .TestLogHandler ;
2225import com .google .gson .Gson ;
2326import functions .eventpojos .PubSubMessage ;
2427import java .time .Instant ;
2528import java .time .ZoneOffset ;
2629import java .time .ZonedDateTime ;
27- import java .util .Map ;
2830import java .util .logging .Logger ;
2931import org .junit .After ;
3032import org .junit .Before ;
3133import org .junit .BeforeClass ;
3234import org .junit .Test ;
3335import org .junit .runner .RunWith ;
3436import org .junit .runners .JUnit4 ;
35- import org .mockito .MockitoAnnotations ;
3637
3738@ RunWith (JUnit4 .class )
3839public class RetryTimeoutTest {
@@ -52,8 +53,6 @@ public static void beforeClass() {
5253
5354 @ Before
5455 public void beforeTest () {
55- MockitoAnnotations .initMocks (this );
56-
5756 LOG_HANDLER .clear ();
5857 }
5958
@@ -65,41 +64,29 @@ public void afterTest() {
6564
6665 @ Test
6766 public void retryTimeout_handlesRetryMsg () {
68- String timestampData = gson .toJson (Map .of (
69- "timestamp" , ZonedDateTime .now (ZoneOffset .UTC ).toString ()));
67+ ZonedDateTime timestamp = ZonedDateTime .now (ZoneOffset .UTC );
68+ Context mockContext = mock (Context .class );
69+ when (mockContext .timestamp ()).thenReturn (timestamp .toString ());
7070
7171 PubSubMessage pubsubMessage = new PubSubMessage ();
72- pubsubMessage .setData (timestampData );
7372
74- new RetryTimeout ().accept (pubsubMessage , null );
73+ new RetryTimeout ().accept (pubsubMessage , mockContext );
7574
7675 String logMessage = LOG_HANDLER .getStoredLogRecords ().get (0 ).getMessage ();
77- assertThat (String . format ("Processing event %s." , timestampData )). isEqualTo ( logMessage );
76+ assertThat (logMessage ). contains ("Processing event with timestamp " + timestamp );
7877 }
7978
8079 @ Test
8180 public void retryTimeout_handlesStopMsg () {
82- String timestamp = ZonedDateTime .ofInstant (Instant .ofEpochMilli (0 ), ZoneOffset .UTC ).toString ();
83- String timestampData = gson .toJson (Map .of ("timestamp" , timestamp ));
84-
85-
86- PubSubMessage pubsubMessage = new PubSubMessage ();
87- pubsubMessage .setData (timestampData );
88-
89- new RetryTimeout ().accept (pubsubMessage , null );
81+ ZonedDateTime timestamp = ZonedDateTime .ofInstant (Instant .ofEpochMilli (0 ), ZoneOffset .UTC );
82+ Context mockContext = mock (Context .class );
83+ when (mockContext .timestamp ()).thenReturn (timestamp .toString ());
9084
91- String logMessage = LOG_HANDLER .getStoredLogRecords ().get (0 ).getMessage ();
92- assertThat (String .format ("Dropping event %s." , timestampData )).isEqualTo (logMessage );
93- }
94-
95- @ Test
96- public void retryTimeout_handlesEmptyMsg () {
9785 PubSubMessage pubsubMessage = new PubSubMessage ();
98- pubsubMessage .setData ("" );
9986
100- new RetryTimeout ().accept (new PubSubMessage (), null );
87+ new RetryTimeout ().accept (pubsubMessage , mockContext );
10188
10289 String logMessage = LOG_HANDLER .getStoredLogRecords ().get (0 ).getMessage ();
103- assertThat ("Processing event null." ). isEqualTo ( logMessage );
90+ assertThat (logMessage ). contains ( "Dropping event with timestamp " + timestamp );
10491 }
10592}
0 commit comments