### Question:
ParsingMockApnsServerListenerAdapter implements MockApnsServerListener { public void handlePushNotificationRejected(final Http2Headers headers, final ByteBuf payload, final RejectionReason rejectionReason, final Instant deviceTokenExpirationTimestamp) { this.handlePushNotificationRejected(parsePushNotification(headers, payload), rejectionReason, deviceTokenExpirationTimestamp); }  void handlePushNotificationAccepted(final Http2Headers headers, final ByteBuf payload); abstract void handlePushNotificationAccepted(final ApnsPushNotification pushNotification); void handlePushNotificationRejected(final Http2Headers headers, final ByteBuf payload, final RejectionReason rejectionReason, final Instant deviceTokenExpirationTimestamp); abstract void handlePushNotificationRejected(final ApnsPushNotification pushNotification, final RejectionReason rejectionReason, final Instant deviceTokenExpirationTimestamp);  }### Answer:
@Test void testHandlePushNotificationRejected() { final TestParsingMockApnsServerListener listener = new TestParsingMockApnsServerListener(); { final RejectionReason rejectionReason = RejectionReason.BAD_DEVICE_TOKEN; listener.handlePushNotificationRejected(new DefaultHttp2Headers(), null, rejectionReason, null); assertEquals(rejectionReason, listener.mostRecentRejectionReason); assertNull(listener.mostRecentDeviceTokenExpiration); } { final RejectionReason rejectionReason = RejectionReason.BAD_PRIORITY; final Instant deviceTokenExpiration = Instant.now(); listener.handlePushNotificationRejected(new DefaultHttp2Headers(), null, rejectionReason, deviceTokenExpiration); assertEquals(rejectionReason, listener.mostRecentRejectionReason); assertEquals(deviceTokenExpiration, listener.mostRecentDeviceTokenExpiration); } }