Skip to content

Commit 3a511cd

Browse files
committed
Update protocol tests gen to use overrided ValidateBody function so object compairsons are scoped to AwsProtocolTestHelpers
1 parent e065ab5 commit 3a511cd

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

tests/testing-resources/include/aws/testing/AwsProtocolTestHelpers.h

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,21 @@ class AwsProtocolTestSuite : public Aws::Testing::AwsCppSdkGTestSuite {
110110
AWS_ASSERT_SUCCESS(setNextResponse);
111111
}
112112

113-
void ValidateRequestSent(const ExpectedRequest& expected = ExpectedRequest(), const bool ignoreBody = false) const {
113+
static void ValidateBody(const ExpectedRequest& expected, const Aws::ProtocolMock::Model::Request& receivedRequest) {
114+
const auto expectedBodyBuf = Aws::Utils::HashingUtils::Base64Decode(expected.body);
115+
const auto receivedBodyBuf = Aws::Utils::HashingUtils::Base64Decode(receivedRequest.GetBody());
116+
const auto expectedBodyStr = Aws::String(reinterpret_cast<char*>(expectedBodyBuf.GetUnderlyingData()), expectedBodyBuf.GetLength());
117+
const auto receivedBodyStr = Aws::String(reinterpret_cast<char*>(receivedBodyBuf.GetUnderlyingData()), receivedBodyBuf.GetLength());
118+
EXPECT_STREQ(expectedBodyStr.c_str(), receivedBodyStr.c_str());
119+
}
120+
121+
void ValidateRequestSent(const std::function<void (const ExpectedRequest& expected, const Aws::ProtocolMock::Model::Request& receivedRequest)>& bodyCompare = ValidateBody) const {
122+
ValidateRequestSent(ExpectedRequest(), bodyCompare);
123+
}
124+
125+
void ValidateRequestSent(const ExpectedRequest& expected = ExpectedRequest(),
126+
const std::function<void (const ExpectedRequest& expected, const Aws::ProtocolMock::Model::Request& receivedRequest)>& bodyCompare = ValidateBody) const {
127+
114128
auto requestsReceivedOutcome = mockClient.GetRequestsReceived();
115129
AWS_ASSERT_SUCCESS(requestsReceivedOutcome);
116130
ASSERT_EQ(1u, requestsReceivedOutcome.GetResult().GetRequests().size());
@@ -119,13 +133,7 @@ class AwsProtocolTestSuite : public Aws::Testing::AwsCppSdkGTestSuite {
119133
if (!expected.method.empty()) {
120134
EXPECT_STREQ(expected.method.c_str(), receivedRequest.GetMethod().c_str());
121135
}
122-
if (!expected.body.empty() && !ignoreBody) {
123-
const auto expectedBodyBuf = Aws::Utils::HashingUtils::Base64Decode(expected.body);
124-
const auto receivedBodyBuf = Aws::Utils::HashingUtils::Base64Decode(receivedRequest.GetBody());
125-
const auto expectedBodyStr = Aws::String(reinterpret_cast<char*>(expectedBodyBuf.GetUnderlyingData()), expectedBodyBuf.GetLength());
126-
const auto receivedBodyStr = Aws::String(reinterpret_cast<char*>(receivedBodyBuf.GetUnderlyingData()), receivedBodyBuf.GetLength());
127-
EXPECT_STREQ(expectedBodyStr.c_str(), receivedBodyStr.c_str());
128-
}
136+
bodyCompare(expected, receivedRequest);
129137
if (!expected.uri.empty()) {
130138
EXPECT_STREQ(expected.uri.c_str(), receivedRequest.GetUri().c_str());
131139
}

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/Metadata.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
@Data
1818
public class Metadata {
1919
private static List<String> supportedProtocols = ImmutableList.of(
20-
"smithy-rpc-v2-cbor",
2120
"json",
2221
"rest-json",
2322
"rest-xml",
2423
"query",
25-
"ec2"
24+
"ec2",
25+
"smithy-rpc-v2-cbor"
2626
);
2727

2828
private String apiVersion;

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/protocoltests/ProtocolTestsTestSuiteSrc.vm

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,9 @@ AWS_PROTOCOL_TEST($testSuite.name, $case.id) {
8383
#end
8484
};
8585
#end
86-
#if($serviceModel.metadata.protocol == "smithy-rpc-v2-cbor")
87-
ValidateRequestSent(expectedRq, true);
88-
#else
86+
#if($serviceModel.metadata.protocol != "smithy-rpc-v2-cbor")
8987
ValidateRequestSent(expectedRq);
9088
#end
91-
#else
92-
ValidateRequestSent();
9389
#end
9490
#parse("com/amazonaws/util/awsclientgenerator/velocity/cpp/protocoltests/result/ValidateOutcome.vm")
9591
}

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/protocoltests/result/ValidateOutcome.vm

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,28 @@
66
#set($responseShape = $serviceModel.operations.get("${case.given.name}").result.shape)
77
#if(!$expectedResult.isEmpty())
88
const ${responseShape.name}& result = outcome.GetResult();
9+
ValidateRequestSent([&result](const ExpectedRequest&, const Aws::ProtocolMock::Model::Request&) -> void {
10+
#else
11+
ValidateRequestSent([](const ExpectedRequest&, const Aws::ProtocolMock::Model::Request&) -> void {
912
#end
1013
/* expectedResult = R"( ${expectedResult} )" */
1114
#elseif($serviceModel.metadata.protocol == "smithy-rpc-v2-cbor")
1215
#set($expectedResult = $case.input.get().params)
1316
#set($responseShape = $serviceModel.operations.get("${case.given.name}").result.shape)
14-
#if(!$expectedResult.isEmpty() && $responseShape)
17+
#if(!$expectedResult.isEmpty())
1518
const ${responseShape.name}& result = outcome.GetResult();
19+
ValidateRequestSent(expectedRq, [&result](const ExpectedRequest&, const Aws::ProtocolMock::Model::Request&) -> void {
20+
#else
21+
ValidateRequestSent(expectedRq, [](const ExpectedRequest&, const Aws::ProtocolMock::Model::Request&) -> void {
1622
#end
1723
/* expectedResult = R"( ${expectedResult} )" */
1824
#end
1925
#foreach($param in $expectedResult.fields())
2026
#ValidateParamsMacro(" ", "result", $responseShape, $param)
2127
#end
28+
#if($serviceModel.metadata.protocol == "smithy-rpc-v2-cbor" || ($case.output && $case.output.get().successResult))
29+
});
30+
#end
2231
#end
2332
#if($case.output && $case.output.get().errorResult)
2433
ASSERT_FALSE(outcome.IsSuccess());

0 commit comments

Comments
 (0)