From 8601c3d1eb819dd6058145f1205212e923645490 Mon Sep 17 00:00:00 2001 From: Vellozzi Date: Fri, 21 Jul 2017 14:11:15 -0700 Subject: [PATCH] Fix SNS integ test to handle base64 encoded messages. --- .../IntegrationTests/IntegrationTests/SNS.cs | 24 ++++++++++++------- sdk/test/IntegrationTests/Tests/SNS.cs | 24 ++++++++++++------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/sdk/test/CoreCLR/IntegrationTests/IntegrationTests/SNS.cs b/sdk/test/CoreCLR/IntegrationTests/IntegrationTests/SNS.cs index 227d9b348a19..3809f04fd03c 100644 --- a/sdk/test/CoreCLR/IntegrationTests/IntegrationTests/SNS.cs +++ b/sdk/test/CoreCLR/IntegrationTests/IntegrationTests/SNS.cs @@ -225,12 +225,12 @@ public async void IsMessageSignatureValid() List messages = await PublishToSNSAndReceiveMessages(GetPublishRequest(topicArn), topicArn, queueUrl); Assert.Equal(1, messages.Count); - var message = messages[0].Body; + var bodyJson = GetBodyJson(messages[0]); - var validMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(message); + var validMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(bodyJson); Assert.True(validMessage.IsMessageSignatureValid()); - var invalidMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(message.Replace("Test Message", "Hacked Message")); + var invalidMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(bodyJson.Replace("Test Message", "Hacked Message")); Assert.False(invalidMessage.IsMessageSignatureValid()); } @@ -247,12 +247,7 @@ public async void TestQueueSubscription() Assert.Equal(1, messages.Count); var message = messages[0]; - string bodyJson; - // Handle some accounts returning message body as base 64 encoded. - if (message.Body.Trim()[0] == '{') - bodyJson = message.Body; - else - bodyJson = Encoding.UTF8.GetString(Convert.FromBase64String(message.Body)); + string bodyJson = GetBodyJson(message); var json = ThirdParty.Json.LitJson.JsonMapper.ToObject(bodyJson); var messageText = json["Message"]; @@ -323,6 +318,17 @@ await Client.PublishAsync(new PublishRequest Assert.Equal(1, policy.Statements.Count); } + private static string GetBodyJson(Message message) + { + string bodyJson; + // Handle some accounts returning message body as base 64 encoded. + if (message.Body.Trim()[0] == '{') + bodyJson = message.Body; + else + bodyJson = Encoding.UTF8.GetString(Convert.FromBase64String(message.Body)); + return bodyJson; + } + [Trait(CategoryAttribute, "SNS")] public async void TestMultipleQueueSubscription() { diff --git a/sdk/test/IntegrationTests/Tests/SNS.cs b/sdk/test/IntegrationTests/Tests/SNS.cs index b24e4ebc71bd..eea0c6f64c58 100644 --- a/sdk/test/IntegrationTests/Tests/SNS.cs +++ b/sdk/test/IntegrationTests/Tests/SNS.cs @@ -243,12 +243,12 @@ public void IsMessageSignatureValid() List messages = PublishToSNSAndReceiveMessages(GetPublishRequest(topicArn), topicArn, queueUrl); Assert.AreEqual(1, messages.Count); - var message = messages[0].Body; + var bodyJson = GetBodyJson(messages[0]); - var validMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(message); + var validMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(bodyJson); Assert.IsTrue(validMessage.IsMessageSignatureValid()); - var invalidMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(message.Replace("Test Message", "Hacked Message")); + var invalidMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(bodyJson.Replace("Test Message", "Hacked Message")); Assert.IsFalse(invalidMessage.IsMessageSignatureValid()); } finally @@ -280,12 +280,7 @@ public void TestQueueSubscription() Assert.AreEqual(1, messages.Count); var message = messages[0]; - string bodyJson; - // Handle some accounts returning message body as base 64 encoded. - if (message.Body.Trim()[0] == '{') - bodyJson = message.Body; - else - bodyJson = Encoding.UTF8.GetString(Convert.FromBase64String(message.Body)); + string bodyJson = GetBodyJson(message); var json = ThirdParty.Json.LitJson.JsonMapper.ToObject(bodyJson); var messageText = json["Message"]; @@ -428,6 +423,17 @@ public void FindTopic() } } + private static string GetBodyJson(Message message) + { + string bodyJson; + // Handle some accounts returning message body as base 64 encoded. + if (message.Body.Trim()[0] == '{') + bodyJson = message.Body; + else + bodyJson = Encoding.UTF8.GetString(Convert.FromBase64String(message.Body)); + return bodyJson; + } + private static List GetAllTopics() { var allTopics = new List();