diff --git a/tests/aws-cpp-sdk-s3-unit-tests/S3UnitTests.cpp b/tests/aws-cpp-sdk-s3-unit-tests/S3UnitTests.cpp index c861f218b13..d769ac20730 100644 --- a/tests/aws-cpp-sdk-s3-unit-tests/S3UnitTests.cpp +++ b/tests/aws-cpp-sdk-s3-unit-tests/S3UnitTests.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -178,3 +179,26 @@ TEST_F(S3UnitTest, S3UriPathPreservationOn) { const auto seenRequest = _mockHttpClient->GetMostRecentHttpRequest(); EXPECT_EQ("https://velvetunderground.s3.us-east-1.amazonaws.com/////stephanie////says////////////that////////she//wants///////to/know.txt", seenRequest.GetUri().GetURIString()); } + +TEST_F(S3UnitTest, S3EmbeddedErrorTest) { + const auto request = CopyObjectRequest() + .WithBucket("testBucket") + .WithKey("testKey") + .WithCopySource("testSource"); + + auto mockRequest = Aws::MakeShared(ALLOCATION_TAG, "mockuri", HttpMethod::HTTP_GET); + mockRequest->SetResponseStreamFactory([]() -> IOStream* { + return Aws::New(ALLOCATION_TAG, R"(SlowDownPlease reduce your request rate.)", std::ios_base::in | std::ios_base::binary); + }); + auto mockResponse = Aws::MakeShared(ALLOCATION_TAG, mockRequest); + mockResponse->SetResponseCode(HttpResponseCode::OK); + mockResponse->AddHeader("Server", "AmazonS3"); + mockResponse->AddHeader("Connection", "close"); + mockResponse->AddHeader("Date", "Mon, 1 Nov 2010 20:34:56 GMT"); + mockResponse->AddHeader("x-amz-request-id", "656c76696e6727732072657175657374"); + mockResponse->AddHeader("x-amz-id-2", "Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg=="); + _mockHttpClient->AddResponseToReturn(mockResponse); + + const auto response = _s3Client->CopyObject(request); + EXPECT_FALSE(response.IsSuccess()); +}