Skip to content

Commit 1d1ccb4

Browse files
committed
handle logic merge conflicts
1 parent 1e0b96a commit 1d1ccb4

File tree

4 files changed

+607
-15
lines changed

4 files changed

+607
-15
lines changed

tests/aws-cpp-sdk-s3-integration-tests/S3ExpressTest.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
#include <aws/testing/platform/PlatformTesting.h>
3434
#include <aws/testing/TestingEnvironment.h>
3535
#include <random>
36+
#include <aws/s3/S3ExpressSigner.h>
37+
#include <aws/s3/S3ExpressIdentityProvider.h>
3638

3739
#ifdef _WIN32
3840
#pragma warning(disable: 4127)
@@ -482,4 +484,49 @@ namespace {
482484
const auto response = client->PutObject(request);
483485
AWS_EXPECT_SUCCESS(response);
484486
}
487+
488+
489+
class MyIdentityProvider : public S3ExpressIdentityProvider {
490+
public:
491+
explicit MyIdentityProvider(const S3Client& client):S3ExpressIdentityProvider(client) {}
492+
~MyIdentityProvider() override = default;
493+
494+
S3ExpressIdentity GetS3ExpressIdentity(
495+
const std::shared_ptr<ServiceSpecificParameters>&
496+
) override
497+
{
498+
return S3ExpressIdentity{"access_key",
499+
"secret_key",
500+
"sessions_token",
501+
DateTime::Now()};
502+
}
503+
504+
ResolveIdentityFutureOutcome getIdentity(
505+
const IdentityProperties& ,
506+
const AdditionalParameters& ) override
507+
{
508+
return Aws::MakeUnique<S3ExpressIdentity>("log",
509+
"access_key",
510+
"secret_key",
511+
"sessions_token",
512+
DateTime::Now());
513+
}
514+
};
515+
516+
TEST_F(S3ExpressTest, ExpressSignerBackwardCompatibilityCompilation)
517+
{
518+
MyIdentityProvider identityProvider(*client);
519+
520+
}
521+
522+
TEST_F(S3ExpressTest, ExpressSignerBackwardCompatibilitySupplier)
523+
{
524+
S3ClientConfiguration configuration{};
525+
configuration.identityProviderSupplier =
526+
[](const S3Client &clientref) -> std::shared_ptr<S3ExpressIdentityProvider> {
527+
return Aws::MakeShared<DefaultS3ExpressIdentityProvider>("log_tag", clientref);
528+
};
529+
S3Client testclient{configuration};
530+
}
531+
485532
}

tests/aws-cpp-sdk-s3-unit-tests/S3UnitTests.cpp

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <aws/testing/AwsTestHelpers.h>
1212
#include <aws/testing/MemoryTesting.h>
1313
#include <memory>
14+
#include <aws/s3/S3ErrorMarshaller.h>
1415

1516
using namespace Aws;
1617
using namespace Aws::Client;
@@ -257,13 +258,25 @@ TEST_F(S3UnitTest, S3EmbeddedErrorTest) {
257258
EXPECT_EQ("656c76696e6727732072657175657374", response.GetError().GetRequestId());
258259
}
259260

261+
class MockRequest : public Aws::AmazonWebServiceRequest
262+
{
263+
public:
264+
std::shared_ptr<Aws::IOStream> GetBody() const override{
265+
return nullptr;
266+
}
267+
268+
Aws::Http::HeaderValueCollection GetHeaders() const override{
269+
return Aws::Http::HeaderValueCollection();
270+
}
271+
272+
const char* GetServiceRequestName() const override{
273+
return "MockRequest";
274+
}
275+
276+
};
260277

261278
//Set http error and error in body in a way to hit generic xml error marshaller, which sets the exception name
262279
TEST_F(S3UnitTest, S3EmbeddedErrorTestNonOKResponse) {
263-
const auto request = CopyObjectRequest()
264-
.WithBucket("testBucket")
265-
.WithKey("testKey")
266-
.WithCopySource("testSource");
267280

268281
auto mockRequest = Aws::MakeShared<Standard::StandardHttpRequest>(ALLOCATION_TAG, "mockuri", HttpMethod::HTTP_GET);
269282
mockRequest->SetResponseStreamFactory([]() -> IOStream* {
@@ -273,22 +286,17 @@ TEST_F(S3UnitTest, S3EmbeddedErrorTestNonOKResponse) {
273286
});
274287
auto mockResponse = Aws::MakeShared<Standard::StandardHttpResponse>(ALLOCATION_TAG, mockRequest);
275288
mockResponse->SetResponseCode(HttpResponseCode::ACCEPTED);
276-
277289
mockResponse->AddHeader("Server", "AmazonS3");
278290
mockResponse->AddHeader("Connection", "close");
279291
mockResponse->AddHeader("Date", "Mon, 1 Nov 2010 20:34:56 GMT");
280292
mockResponse->AddHeader("x-amz-request-id", "656c76696e6727732072657175657374");
281293
mockResponse->AddHeader("x-amz-id-2", "Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg==");
282-
283-
_mockHttpClient->AddResponseToReturn(mockResponse);
284-
285-
auto endpointResolutionOutcome = _s3Client->accessEndpointProvider()->ResolveEndpoint(request.GetEndpointContextParams());
286-
287-
const auto response = std::static_pointer_cast<S3TestClient>(_s3Client)->Aws::Client::AWSXMLClient::MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT, "dummy");
288-
289-
EXPECT_TRUE(response.GetError().GetExceptionName() == "InvalidAction");
290-
291-
EXPECT_FALSE(response.IsSuccess());
294+
MockRequest request;
295+
auto errorMarshaller = S3ErrorMarshaller();
296+
auto error = errorMarshaller.Marshall(*mockResponse);
297+
auto outcome = HttpResponseOutcome(std::move(error) );
298+
ASSERT_FALSE(outcome.IsSuccess());
299+
EXPECT_TRUE(outcome.GetError().GetExceptionName() == "InvalidAction");
292300
}
293301

294302
TEST_F(S3UnitTest, PutObjectShouldHaveCorrectUserAgent) {

0 commit comments

Comments
 (0)