Мне интересно, как я могу протестировать такой метод:
public PublishResponse broadcast(String eventJson, Class<? extends BaseEvent> type) {
//Build Sns client.
AwsCredentials awsCredentials = AwsBasicCredentials
.create(snsConfiguration.getAwsAccessKeyId(), snsConfiguration.getAwsSecretAccessKey());
StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(awsCredentials);
SnsClient snsClient = SnsClient.builder().credentialsProvider(credentialsProvider).build();
//Prepare message attributes.
Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
MessageAttributeValue messageAttributeValue = MessageAttributeValue.builder().dataType("String").stringValue(type.getName())
.build();
messageAttributes.put("type", messageAttributeValue);
//Publish message with event json to Amazon SNS.
return snsClient.publish(PublishRequest.builder()
.message(eventJson)
.messageAttributes(messageAttributes)
.topicArn(snsConfiguration.getTopicARN())
.build());
}
Весь код здесь зависит от API AWS SDK. Я знаю, что мог бы подшучивать здесь, но в конце времени его метод отвечает за отправку сообщения в SNS. Как написать объединенное тестирование для такой вещи?