public async Task EmitPublishesMessagesWithSourceIdAttribute( string message, string serializedMessage, Snowflake channelId, [Frozen] IAmazonSimpleNotificationService snsClient, [Frozen] ISerializer serializer, [Frozen, Options] IOptions <SnsMessageEmitterOptions> options, [Target] SnsMessageEmitter emitter ) { var cancellationToken = new CancellationToken(false); await emitter.Emit(message, channelId, cancellationToken); serializer.Received().Serialize(Is(message)); await snsClient.Received().PublishAsync( Is <PublishRequest>(req => req.MessageAttributes.Any(attribute => attribute.Key == "Brighid.SourceId" && attribute.Value.DataType == "String" && attribute.Value.StringValue == channelId ) ), Is(cancellationToken) ); }
public async Task EmitSerializesMessageAndPublishesToTopic( string message, string serializedMessage, Snowflake channelId, [Frozen] IAmazonSimpleNotificationService snsClient, [Frozen] ISerializer serializer, [Frozen, Options] IOptions <SnsMessageEmitterOptions> options, [Target] SnsMessageEmitter emitter ) { serializer.Serialize(Any <string>()).Returns(serializedMessage); var cancellationToken = new CancellationToken(false); await emitter.Emit(message, channelId, cancellationToken); serializer.Received().Serialize(Is(message)); await snsClient.Received().PublishAsync( Is <PublishRequest>(req => req.TopicArn == options.Value.TopicArn && req.Message == serializedMessage ), Is(cancellationToken) ); }