### Question:
NotificationQueueProducerServiceImpl implements NotificationQueueProducerService { @Override public void processStartSendingNotificationEvent(@Nonnull final Long notificationId, @Nonnull final Map<String, String> secureProperties) { Assert.notNull(notificationId, "Notification id should not be null."); Assert.notNull(secureProperties, "Secure properties should not be null."); logger.debug("Processing notification sending event for notification by id - {}", notificationId); amqpConnectorService.publishMessage(RPCCallType.START_NOTIFICATION_PROCESSING, new NotificationRPCTransferModel(notificationId, secureProperties), NotificationRPCTransferModel.class, new NotificationMessageSendingEventListenerRPCResponseHandler()); } NotificationQueueProducerServiceImpl(); @Override void processStartSendingNotificationEvent(@Nonnull final Long notificationId, @Nonnull final Map<String, String> secureProperties);  }### Answer:
@Test public void testProcessStartSendingSmsMessageEventWithInvalidArguments() { resetAll(); replayAll(); try { smsNotificationQueueProducerService.processStartSendingNotificationEvent(null, Collections.emptyMap()); fail("Exception will be thrown"); } catch (final IllegalArgumentException e) { } try { final Long notificationId = 1L; smsNotificationQueueProducerService.processStartSendingNotificationEvent(notificationId, null); fail("Exception will be thrown"); } catch (final IllegalArgumentException e) { } verifyAll(); }
@Test public void testProcessStartSendingSmsMessageEvent() { final Long notificationId = 1L; resetAll(); amqpConnectorService.publishMessage(eq(RPCCallType.START_NOTIFICATION_PROCESSING), isA(NotificationRPCTransferModel.class), eq(NotificationRPCTransferModel.class), isA(AmqpResponseHandler.class)); expectLastCall().once(); replayAll(); smsNotificationQueueProducerService.processStartSendingNotificationEvent(notificationId, Collections.emptyMap()); verifyAll(); }