Client Test

Client Test

rev. c4f9295a7b4566dca79c361e3a2aa9e63cdf82e7

Files changed:

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/operation/checksum_required.rs

@@ -203,203 +263,263 @@
  223    223   
// operationContextParams trait. They target the operation's input shape.
  224    224   
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227    227   
mod checksum_required_test {
  228    228   
  229    229   
    /// Test ID: ChecksumRequiredHeader
  230    230   
    #[::tokio::test]
  231    231   
    #[::tracing_test::traced_test]
  232    232   
    async fn checksum_required_header_request() {
  233         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         233  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  234    234   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  235    235   
  236    236   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  237    237   
        let result = client
  238    238   
            .checksum_required()
  239    239   
            .set_field(::std::option::Option::Some("hello".to_owned()))
  240    240   
            .send()
  241    241   
            .await;
  242    242   
        let _ = dbg!(result);
  243    243   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/operation/enum_keys.rs

@@ -194,194 +254,254 @@
  214    214   
// operationContextParams trait. They target the operation's input shape.
  215    215   
  216    216   
#[allow(unreachable_code, unused_variables)]
  217    217   
#[cfg(test)]
  218    218   
mod enum_keys_test {
  219    219   
  220    220   
    /// Test ID: SerEnumMap
  221    221   
    #[::tokio::test]
  222    222   
    #[::tracing_test::traced_test]
  223    223   
    async fn ser_enum_map_request() {
  224         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         224  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  225    225   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  226    226   
  227    227   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  228    228   
        let result = client
  229    229   
            .enum_keys()
  230    230   
            .set_data(::std::option::Option::Some({
  231    231   
                let mut ret = ::std::collections::HashMap::new();
  232    232   
                ret.insert(
  233    233   
                    "enumvalue".parse::<crate::types::StringEnum>().expect("static value validated to member"),
  234    234   
                    "hello".to_owned(),

tmp-codegen-diff/codegen-client-test/rest_xml_extras/rust-client-codegen/src/operation/primitive_int_op_xml.rs

@@ -204,204 +287,287 @@
  224    224   
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227    227   
mod primitive_int_op_xml_test {
  228    228   
  229    229   
    /// Primitive ints should not be serialized when they are unset
  230    230   
    /// Test ID: RestXmlSerPrimitiveIntUnset
  231    231   
    #[::tokio::test]
  232    232   
    #[::tracing_test::traced_test]
  233    233   
    async fn rest_xml_ser_primitive_int_unset_request() {
  234         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         234  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  235    235   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  236    236   
  237    237   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  238    238   
        let result = client.primitive_int_op_xml().send().await;
  239    239   
        let _ = dbg!(result);
  240    240   
        let http_request = request_receiver.expect_request();
  241    241   
        let body = http_request.body().bytes().expect("body should be strict");
  242    242   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  243    243   
            body,
  244    244   
            "    <PrimitiveIntDocument>\n    </PrimitiveIntDocument>\n",
  245    245   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  246    246   
        ));
  247    247   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  248    248   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  249    249   
        ::pretty_assertions::assert_eq!(uri.path(), "/primitive-document", "path was incorrect");
  250    250   
    }
  251    251   
  252    252   
    /// Primitive ints should not be serialized when they are unset
  253    253   
    /// Test ID: RestXmlSerPrimitiveIntSetToDefault
  254    254   
    #[::tokio::test]
  255    255   
    #[::tracing_test::traced_test]
  256    256   
    async fn rest_xml_ser_primitive_int_set_to_default_request() {
  257         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         257  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  258    258   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  259    259   
  260    260   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  261    261   
        let result = client.primitive_int_op_xml().set_value(::std::option::Option::Some(1)).send().await;
  262    262   
        let _ = dbg!(result);
  263    263   
        let http_request = request_receiver.expect_request();
  264    264   
        let body = http_request.body().bytes().expect("body should be strict");
  265    265   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  266    266   
            body,
  267    267   
            "<PrimitiveIntDocument>\n     <value>1</value>\n</PrimitiveIntDocument>\n",

tmp-codegen-diff/codegen-client-test/rest_xml_extras_unwrapped/rust-client-codegen/Cargo.toml

@@ -16,16 +49,50 @@
   36     36   
[dev-dependencies.tracing]
   37     37   
version = "0.1"
   38     38   
[dev-dependencies.tracing-test]
   39     39   
version = "0.2.5"
   40     40   
features = ["no-env-filter"]
   41     41   
[features]
   42     42   
test-util = ["aws-smithy-runtime/test-util"]
   43     43   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
   44     44   
behavior-version-latest = []
   45     45   
rustls = ["aws-smithy-runtime/tls-rustls"]
          46  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
   46     47   
gated-tests = []
   47         -
default = ["rt-tokio", "rustls"]
          48  +
default = ["rt-tokio", "rustls", "default-https-client"]
   48     49   
   49     50   

tmp-codegen-diff/codegen-client-test/rest_xml_namespace/rust-client-codegen/Cargo.toml

@@ -1,1 +52,53 @@
   17     17   
features = ["client"]
   18     18   
[dependencies.aws-smithy-runtime-api]
   19     19   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime-api"
   20     20   
features = ["client", "http-02x"]
   21     21   
[dependencies.aws-smithy-types]
   22     22   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-types"
   23     23   
[dependencies.aws-smithy-xml]
   24     24   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-xml"
   25     25   
[dependencies.http]
   26     26   
version = "0.2.9"
          27  +
[dev-dependencies.aws-smithy-http-client]
          28  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-http-client"
          29  +
features = ["test-util"]
   27     30   
[dev-dependencies.aws-smithy-protocol-test]
   28     31   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-protocol-test"
   29         -
[dev-dependencies.aws-smithy-runtime]
   30         -
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime"
   31         -
features = ["client", "test-util"]
   32     32   
[dev-dependencies.bytes]
   33     33   
version = "1.4.0"
   34     34   
[dev-dependencies.pretty_assertions]
   35     35   
version = "1.3.0"
   36     36   
[dev-dependencies.tokio]
   37     37   
version = "1.23.1"
   38     38   
features = ["macros", "test-util", "rt-multi-thread"]
   39     39   
[dev-dependencies.tracing]
   40     40   
version = "0.1"
   41     41   
[dev-dependencies.tracing-test]
   42     42   
version = "0.2.5"
   43     43   
features = ["no-env-filter"]
   44     44   
[features]
   45     45   
test-util = ["aws-smithy-runtime/test-util"]
   46     46   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
   47     47   
behavior-version-latest = []
   48     48   
rustls = ["aws-smithy-runtime/tls-rustls"]
          49  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
   49     50   
gated-tests = []
   50         -
default = ["rt-tokio", "rustls"]
          51  +
default = ["rt-tokio", "rustls", "default-https-client"]
   51     52   
   52     53   

tmp-codegen-diff/codegen-client-test/rest_xml_namespace/rust-client-codegen/src/operation/simple_scalar_properties.rs

@@ -212,212 +272,272 @@
  232    232   
#[allow(unreachable_code, unused_variables)]
  233    233   
#[cfg(test)]
  234    234   
mod simple_scalar_properties_test {
  235    235   
    use ::aws_smithy_protocol_test::FloatEquals;
  236    236   
  237    237   
    /// Serializes simple scalar properties
  238    238   
    /// Test ID: XmlNamespaceSimpleScalarProperties
  239    239   
    #[::tokio::test]
  240    240   
    #[::tracing_test::traced_test]
  241    241   
    async fn xml_namespace_simple_scalar_properties_request() {
  242         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         242  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  243    243   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  244    244   
  245    245   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  246    246   
        let result = client
  247    247   
            .simple_scalar_properties()
  248    248   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  249    249   
            .set_string_value(::std::option::Option::Some("string".to_owned()))
  250    250   
            .set_true_boolean_value(::std::option::Option::Some(true))
  251    251   
            .set_false_boolean_value(::std::option::Option::Some(false))
  252    252   
            .set_byte_value(::std::option::Option::Some(1))

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/Cargo.toml

@@ -1,1 +52,53 @@
   17     17   
[dependencies.aws-smithy-runtime]
   18     18   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime"
   19     19   
features = ["client"]
   20     20   
[dependencies.aws-smithy-runtime-api]
   21     21   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime-api"
   22     22   
features = ["client", "http-02x"]
   23     23   
[dependencies.aws-smithy-types]
   24     24   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-types"
   25     25   
[dependencies.http]
   26     26   
version = "0.2.9"
          27  +
[dev-dependencies.aws-smithy-http-client]
          28  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-http-client"
          29  +
features = ["test-util"]
   27     30   
[dev-dependencies.aws-smithy-protocol-test]
   28     31   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-protocol-test"
   29         -
[dev-dependencies.aws-smithy-runtime]
   30         -
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime"
   31         -
features = ["client", "test-util"]
   32     32   
[dev-dependencies.bytes]
   33     33   
version = "1.4.0"
   34     34   
[dev-dependencies.pretty_assertions]
   35     35   
version = "1.3.0"
   36     36   
[dev-dependencies.tokio]
   37     37   
version = "1.23.1"
   38     38   
features = ["macros", "test-util", "rt-multi-thread"]
   39     39   
[dev-dependencies.tracing]
   40     40   
version = "0.1"
   41     41   
[dev-dependencies.tracing-test]
   42     42   
version = "0.2.5"
   43     43   
features = ["no-env-filter"]
   44     44   
[features]
   45     45   
test-util = ["aws-smithy-runtime/test-util"]
   46     46   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
   47     47   
behavior-version-latest = []
   48     48   
rustls = ["aws-smithy-runtime/tls-rustls"]
          49  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
   49     50   
gated-tests = []
   50         -
default = ["rt-tokio", "rustls"]
          51  +
default = ["rt-tokio", "rustls", "default-https-client"]
   51     52   
   52     53   

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/empty_input_output.rs

@@ -206,206 +266,266 @@
  226    226   
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229    229   
mod empty_input_output_test {
  230    230   
  231    231   
    /// When Input structure is empty we write CBOR equivalent of {}
  232    232   
    /// Test ID: empty_input
  233    233   
    #[::tokio::test]
  234    234   
    #[::tracing_test::traced_test]
  235    235   
    async fn empty_input_request() {
  236         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         236  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  237    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  238    238   
  239    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  240    240   
        let result = client.empty_input_output().send().await;
  241    241   
        let _ = dbg!(result);
  242    242   
        let http_request = request_receiver.expect_request();
  243    243   
        let expected_headers = [
  244    244   
            ("Accept", "application/cbor"),
  245    245   
            ("Content-Type", "application/cbor"),
  246    246   
            ("smithy-protocol", "rpc-v2-cbor"),

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/no_input_output.rs

@@ -204,204 +264,264 @@
  224    224   
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227    227   
mod no_input_output_test {
  228    228   
  229    229   
    /// Body is empty and no Content-Type header if no input
  230    230   
    /// Test ID: no_input
  231    231   
    #[::tokio::test]
  232    232   
    #[::tracing_test::traced_test]
  233    233   
    async fn no_input_request() {
  234         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         234  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  235    235   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  236    236   
  237    237   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  238    238   
        let result = client.no_input_output().send().await;
  239    239   
        let _ = dbg!(result);
  240    240   
        let http_request = request_receiver.expect_request();
  241    241   
        let expected_headers = [("Accept", "application/cbor"), ("smithy-protocol", "rpc-v2-cbor")];
  242    242   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  243    243   
        let forbidden_headers = &["Content-Type", "X-Amz-Target"];
  244    244   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(http_request.headers(), forbidden_headers));

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/operation_with_defaults.rs

@@ -216,216 +341,341 @@
  236    236   
#[cfg(test)]
  237    237   
mod operation_with_defaults_test {
  238    238   
    use ::aws_smithy_protocol_test::FloatEquals;
  239    239   
  240    240   
    /// Client populates default values in input.
  241    241   
    /// Test ID: RpcV2CborClientPopulatesDefaultValuesInInput
  242    242   
    #[::tokio::test]
  243    243   
    #[::tracing_test::traced_test]
  244    244   
    #[should_panic]
  245    245   
    async fn rpc_v2_cbor_client_populates_default_values_in_input_request() {
  246         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         246  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  247    247   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  248    248   
  249    249   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  250    250   
        let result = client
  251    251   
            .operation_with_defaults()
  252    252   
            .set_defaults(::std::option::Option::Some(crate::types::Defaults::builder().build()))
  253    253   
            .send()
  254    254   
            .await;
  255    255   
        let _ = dbg!(result);
  256    256   
        let http_request = request_receiver.expect_request();
  257    257   
        let expected_headers = [
  258    258   
            ("Accept", "application/cbor"),
  259    259   
            ("Content-Type", "application/cbor"),
  260    260   
            ("smithy-protocol", "rpc-v2-cbor"),
  261    261   
        ];
  262    262   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  263    263   
        let required_headers = &["Content-Length"];
  264    264   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  265    265   
        let body = http_request.body().bytes().expect("body should be strict");
  266    266   
        ::aws_smithy_protocol_test::assert_ok(
  267    267   
        ::aws_smithy_protocol_test::validate_body(body, "v2hkZWZhdWx0c79tZGVmYXVsdFN0cmluZ2JoaW5kZWZhdWx0Qm9vbGVhbvVrZGVmYXVsdExpc3Sf/3BkZWZhdWx0VGltZXN0YW1wwQBrZGVmYXVsdEJsb2JjYWJja2RlZmF1bHRCeXRlAWxkZWZhdWx0U2hvcnQBbmRlZmF1bHRJbnRlZ2VyCmtkZWZhdWx0TG9uZxhkbGRlZmF1bHRGbG9hdPo/gAAAbWRlZmF1bHREb3VibGX6P4AAAGpkZWZhdWx0TWFwv/9rZGVmYXVsdEVudW1jRk9PbmRlZmF1bHRJbnRFbnVtAWtlbXB0eVN0cmluZ2BsZmFsc2VCb29sZWFu9GllbXB0eUJsb2JgaHplcm9CeXRlAGl6ZXJvU2hvcnQAa3plcm9JbnRlZ2VyAGh6ZXJvTG9uZwBpemVyb0Zsb2F0+gAAAABqemVyb0RvdWJsZfoAAAAA//8=", ::aws_smithy_protocol_test::MediaType::from("application/cbor"))
  268    268   
        );
  269    269   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  270    270   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  271    271   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/OperationWithDefaults", "path was incorrect");
  272    272   
    }
  273    273   
  274    274   
    /// Client skips top level default values in input.
  275    275   
    /// Test ID: RpcV2CborClientSkipsTopLevelDefaultValuesInInput
  276    276   
    #[::tokio::test]
  277    277   
    #[::tracing_test::traced_test]
  278    278   
    async fn rpc_v2_cbor_client_skips_top_level_default_values_in_input_request() {
  279         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         279  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  280    280   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  281    281   
  282    282   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  283    283   
        let result = client.operation_with_defaults().send().await;
  284    284   
        let _ = dbg!(result);
  285    285   
        let http_request = request_receiver.expect_request();
  286    286   
        let expected_headers = [
  287    287   
            ("Accept", "application/cbor"),
  288    288   
            ("Content-Type", "application/cbor"),
  289    289   
            ("smithy-protocol", "rpc-v2-cbor"),
  290    290   
        ];
  291    291   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  292    292   
        let required_headers = &["Content-Length"];
  293    293   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  294    294   
        let body = http_request.body().bytes().expect("body should be strict");
  295    295   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  296    296   
            body,
  297    297   
            "v/8=",
  298    298   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  299    299   
        ));
  300    300   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  301    301   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  302    302   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/OperationWithDefaults", "path was incorrect");
  303    303   
    }
  304    304   
  305    305   
    /// Client uses explicitly provided member values over defaults
  306    306   
    /// Test ID: RpcV2CborClientUsesExplicitlyProvidedMemberValuesOverDefaults
  307    307   
    #[::tokio::test]
  308    308   
    #[::tracing_test::traced_test]
  309    309   
    #[should_panic]
  310    310   
    async fn rpc_v2_cbor_client_uses_explicitly_provided_member_values_over_defaults_request() {
  311         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         311  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  312    312   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  313    313   
  314    314   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  315    315   
        let result = client
  316    316   
            .operation_with_defaults()
  317    317   
            .set_defaults(::std::option::Option::Some(
  318    318   
                crate::types::Defaults::builder()
  319    319   
                    .set_default_string(::std::option::Option::Some("bye".to_owned()))
  320    320   
                    .set_default_boolean(::std::option::Option::Some(true))
  321    321   
                    .set_default_list(::std::option::Option::Some(vec!["a".to_owned()]))
@@ -346,346 +442,442 @@
  366    366   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  367    367   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  368    368   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/OperationWithDefaults", "path was incorrect");
  369    369   
    }
  370    370   
  371    371   
    /// Any time a value is provided for a member in the top level of input, it is used, regardless of if its the default.
  372    372   
    /// Test ID: RpcV2CborClientUsesExplicitlyProvidedValuesInTopLevel
  373    373   
    #[::tokio::test]
  374    374   
    #[::tracing_test::traced_test]
  375    375   
    async fn rpc_v2_cbor_client_uses_explicitly_provided_values_in_top_level_request() {
  376         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         376  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  377    377   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  378    378   
  379    379   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  380    380   
        let result = client
  381    381   
            .operation_with_defaults()
  382    382   
            .set_top_level_default(::std::option::Option::Some("hi".to_owned()))
  383    383   
            .set_other_top_level_default(::std::option::Option::Some(0))
  384    384   
            .send()
  385    385   
            .await;
  386    386   
        let _ = dbg!(result);
  387    387   
        let http_request = request_receiver.expect_request();
  388    388   
        let expected_headers = [
  389    389   
            ("Accept", "application/cbor"),
  390    390   
            ("Content-Type", "application/cbor"),
  391    391   
            ("smithy-protocol", "rpc-v2-cbor"),
  392    392   
        ];
  393    393   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  394    394   
        let required_headers = &["Content-Length"];
  395    395   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  396    396   
        let body = http_request.body().bytes().expect("body should be strict");
  397    397   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  398    398   
            body,
  399    399   
            "v290b3BMZXZlbERlZmF1bHRiaGl0b3RoZXJUb3BMZXZlbERlZmF1bHQA/w==",
  400    400   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  401    401   
        ));
  402    402   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  403    403   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  404    404   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/OperationWithDefaults", "path was incorrect");
  405    405   
    }
  406    406   
  407    407   
    /// Typically, non top-level members would have defaults filled in, but if they have the clientOptional trait, the defaults should be ignored.
  408    408   
    /// Test ID: RpcV2CborClientIgnoresNonTopLevelDefaultsOnMembersWithClientOptional
  409    409   
    #[::tokio::test]
  410    410   
    #[::tracing_test::traced_test]
  411    411   
    async fn rpc_v2_cbor_client_ignores_non_top_level_defaults_on_members_with_client_optional_request() {
  412         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         412  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  413    413   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  414    414   
  415    415   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  416    416   
        let result = client
  417    417   
            .operation_with_defaults()
  418    418   
            .set_client_optional_defaults(::std::option::Option::Some(crate::types::ClientOptionalDefaults::builder().build()))
  419    419   
            .send()
  420    420   
            .await;
  421    421   
        let _ = dbg!(result);
  422    422   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/optional_input_output.rs

@@ -208,208 +268,268 @@
  228    228   
  229    229   
#[allow(unreachable_code, unused_variables)]
  230    230   
#[cfg(test)]
  231    231   
mod optional_input_output_test {
  232    232   
  233    233   
    /// When input is empty we write CBOR equivalent of {}
  234    234   
    /// Test ID: optional_input
  235    235   
    #[::tokio::test]
  236    236   
    #[::tracing_test::traced_test]
  237    237   
    async fn optional_input_request() {
  238         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         238  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  239    239   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  240    240   
  241    241   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  242    242   
        let result = client.optional_input_output().send().await;
  243    243   
        let _ = dbg!(result);
  244    244   
        let http_request = request_receiver.expect_request();
  245    245   
        let expected_headers = [
  246    246   
            ("Accept", "application/cbor"),
  247    247   
            ("Content-Type", "application/cbor"),
  248    248   
            ("smithy-protocol", "rpc-v2-cbor"),

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/recursive_shapes.rs

@@ -206,206 +266,266 @@
  226    226   
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229    229   
mod recursive_shapes_test {
  230    230   
  231    231   
    /// Serializes recursive structures
  232    232   
    /// Test ID: RpcV2CborRecursiveShapes
  233    233   
    #[::tokio::test]
  234    234   
    #[::tracing_test::traced_test]
  235    235   
    async fn rpc_v2_cbor_recursive_shapes_request() {
  236         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         236  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  237    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  238    238   
  239    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  240    240   
        let result = client
  241    241   
            .recursive_shapes()
  242    242   
            .set_nested(::std::option::Option::Some(
  243    243   
                crate::types::RecursiveShapesInputOutputNested1::builder()
  244    244   
                    .set_foo(::std::option::Option::Some("Foo1".to_owned()))
  245    245   
                    .set_nested(::std::option::Option::Some(::std::boxed::Box::new(
  246    246   
                        crate::types::RecursiveShapesInputOutputNested2::builder()

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/rpc_v2_cbor_dense_maps.rs

@@ -208,208 +362,362 @@
  228    228   
  229    229   
#[allow(unreachable_code, unused_variables)]
  230    230   
#[cfg(test)]
  231    231   
mod rpc_v2_cbor_dense_maps_test {
  232    232   
  233    233   
    /// Serializes maps
  234    234   
    /// Test ID: RpcV2CborMaps
  235    235   
    #[::tokio::test]
  236    236   
    #[::tracing_test::traced_test]
  237    237   
    async fn rpc_v2_cbor_maps_request() {
  238         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         238  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  239    239   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  240    240   
  241    241   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  242    242   
        let result = client
  243    243   
            .rpc_v2_cbor_dense_maps()
  244    244   
            .set_dense_struct_map(::std::option::Option::Some({
  245    245   
                let mut ret = ::std::collections::HashMap::new();
  246    246   
                ret.insert(
  247    247   
                    "foo".to_owned(),
  248    248   
                    crate::types::GreetingStruct::builder()
  249    249   
                        .set_hi(::std::option::Option::Some("there".to_owned()))
  250    250   
                        .build(),
  251    251   
                );
  252    252   
                ret.insert(
  253    253   
                    "baz".to_owned(),
  254    254   
                    crate::types::GreetingStruct::builder()
  255    255   
                        .set_hi(::std::option::Option::Some("bye".to_owned()))
  256    256   
                        .build(),
  257    257   
                );
  258    258   
                ret
  259    259   
            }))
  260    260   
            .send()
  261    261   
            .await;
  262    262   
        let _ = dbg!(result);
  263    263   
        let http_request = request_receiver.expect_request();
  264    264   
        let expected_headers = [
  265    265   
            ("Accept", "application/cbor"),
  266    266   
            ("Content-Type", "application/cbor"),
  267    267   
            ("smithy-protocol", "rpc-v2-cbor"),
  268    268   
        ];
  269    269   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  270    270   
        let required_headers = &["Content-Length"];
  271    271   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  272    272   
        let body = http_request.body().bytes().expect("body should be strict");
  273    273   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  274    274   
            body,
  275    275   
            "oW5kZW5zZVN0cnVjdE1hcKJjZm9voWJoaWV0aGVyZWNiYXqhYmhpY2J5ZQ==",
  276    276   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  277    277   
        ));
  278    278   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  279    279   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  280    280   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborDenseMaps", "path was incorrect");
  281    281   
    }
  282    282   
  283    283   
    /// Ensure that 0 and false are sent over the wire in all maps and lists
  284    284   
    /// Test ID: RpcV2CborSerializesZeroValuesInMaps
  285    285   
    #[::tokio::test]
  286    286   
    #[::tracing_test::traced_test]
  287    287   
    async fn rpc_v2_cbor_serializes_zero_values_in_maps_request() {
  288         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         288  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  289    289   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  290    290   
  291    291   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  292    292   
        let result = client
  293    293   
            .rpc_v2_cbor_dense_maps()
  294    294   
            .set_dense_number_map(::std::option::Option::Some({
  295    295   
                let mut ret = ::std::collections::HashMap::new();
  296    296   
                ret.insert("x".to_owned(), 0);
  297    297   
                ret
  298    298   
            }))
  299    299   
            .set_dense_boolean_map(::std::option::Option::Some({
  300    300   
                let mut ret = ::std::collections::HashMap::new();
  301    301   
                ret.insert("x".to_owned(), false);
  302    302   
                ret
  303    303   
            }))
  304    304   
            .send()
  305    305   
            .await;
  306    306   
        let _ = dbg!(result);
  307    307   
        let http_request = request_receiver.expect_request();
  308    308   
        let expected_headers = [
  309    309   
            ("Accept", "application/cbor"),
  310    310   
            ("Content-Type", "application/cbor"),
  311    311   
            ("smithy-protocol", "rpc-v2-cbor"),
  312    312   
        ];
  313    313   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  314    314   
        let required_headers = &["Content-Length"];
  315    315   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  316    316   
        let body = http_request.body().bytes().expect("body should be strict");
  317    317   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  318    318   
            body,
  319    319   
            "om5kZW5zZU51bWJlck1hcKFheABvZGVuc2VCb29sZWFuTWFwoWF49A==",
  320    320   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  321    321   
        ));
  322    322   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  323    323   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  324    324   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborDenseMaps", "path was incorrect");
  325    325   
    }
  326    326   
  327    327   
    /// A request that contains a dense map of sets.
  328    328   
    /// Test ID: RpcV2CborSerializesDenseSetMap
  329    329   
    #[::tokio::test]
  330    330   
    #[::tracing_test::traced_test]
  331    331   
    async fn rpc_v2_cbor_serializes_dense_set_map_request() {
  332         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         332  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  333    333   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  334    334   
  335    335   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  336    336   
        let result = client
  337    337   
            .rpc_v2_cbor_dense_maps()
  338    338   
            .set_dense_set_map(::std::option::Option::Some({
  339    339   
                let mut ret = ::std::collections::HashMap::new();
  340    340   
                ret.insert("x".to_owned(), vec![]);
  341    341   
                ret.insert("y".to_owned(), vec!["a".to_owned(), "b".to_owned()]);
  342    342   
                ret

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/rpc_v2_cbor_lists.rs

@@ -206,206 +266,266 @@
  226    226   
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229    229   
mod rpc_v2_cbor_lists_test {
  230    230   
  231    231   
    /// Serializes RpcV2 Cbor lists
  232    232   
    /// Test ID: RpcV2CborLists
  233    233   
    #[::tokio::test]
  234    234   
    #[::tracing_test::traced_test]
  235    235   
    async fn rpc_v2_cbor_lists_request() {
  236         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         236  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  237    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  238    238   
  239    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  240    240   
        let result = client
  241    241   
            .rpc_v2_cbor_lists()
  242    242   
            .set_string_list(::std::option::Option::Some(vec!["foo".to_owned(), "bar".to_owned()]))
  243    243   
            .set_string_set(::std::option::Option::Some(vec!["foo".to_owned(), "bar".to_owned()]))
  244    244   
            .set_integer_list(::std::option::Option::Some(vec![1, 2]))
  245    245   
            .set_boolean_list(::std::option::Option::Some(vec![true, false]))
  246    246   
            .set_timestamp_list(::std::option::Option::Some(vec![
@@ -269,269 +364,364 @@
  289    289   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  290    290   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  291    291   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborLists", "path was incorrect");
  292    292   
    }
  293    293   
  294    294   
    /// Serializes empty JSON lists
  295    295   
    /// Test ID: RpcV2CborListsEmpty
  296    296   
    #[::tokio::test]
  297    297   
    #[::tracing_test::traced_test]
  298    298   
    async fn rpc_v2_cbor_lists_empty_request() {
  299         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         299  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  300    300   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  301    301   
  302    302   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  303    303   
        let result = client
  304    304   
            .rpc_v2_cbor_lists()
  305    305   
            .set_string_list(::std::option::Option::Some(vec![]))
  306    306   
            .send()
  307    307   
            .await;
  308    308   
        let _ = dbg!(result);
  309    309   
        let http_request = request_receiver.expect_request();
  310    310   
        let expected_headers = [
  311    311   
            ("Accept", "application/cbor"),
  312    312   
            ("Content-Type", "application/cbor"),
  313    313   
            ("smithy-protocol", "rpc-v2-cbor"),
  314    314   
        ];
  315    315   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  316    316   
        let required_headers = &["Content-Length"];
  317    317   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  318    318   
        let body = http_request.body().bytes().expect("body should be strict");
  319    319   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  320    320   
            body,
  321    321   
            "v2pzdHJpbmdMaXN0n///",
  322    322   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  323    323   
        ));
  324    324   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  325    325   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  326    326   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborLists", "path was incorrect");
  327    327   
    }
  328    328   
  329    329   
    /// Serializes empty JSON definite length lists
  330    330   
    /// Test ID: RpcV2CborListsEmptyUsingDefiniteLength
  331    331   
    #[::tokio::test]
  332    332   
    #[::tracing_test::traced_test]
  333    333   
    async fn rpc_v2_cbor_lists_empty_using_definite_length_request() {
  334         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         334  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  335    335   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  336    336   
  337    337   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  338    338   
        let result = client
  339    339   
            .rpc_v2_cbor_lists()
  340    340   
            .set_string_list(::std::option::Option::Some(vec![]))
  341    341   
            .send()
  342    342   
            .await;
  343    343   
        let _ = dbg!(result);
  344    344   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/rpc_v2_cbor_sparse_maps.rs

@@ -208,208 +457,457 @@
  228    228   
  229    229   
#[allow(unreachable_code, unused_variables)]
  230    230   
#[cfg(test)]
  231    231   
mod rpc_v2_cbor_sparse_maps_test {
  232    232   
  233    233   
    /// Serializes sparse maps
  234    234   
    /// Test ID: RpcV2CborSparseMaps
  235    235   
    #[::tokio::test]
  236    236   
    #[::tracing_test::traced_test]
  237    237   
    async fn rpc_v2_cbor_sparse_maps_request() {
  238         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         238  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  239    239   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  240    240   
  241    241   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  242    242   
        let result = client
  243    243   
            .rpc_v2_cbor_sparse_maps()
  244    244   
            .set_sparse_struct_map(::std::option::Option::Some({
  245    245   
                let mut ret = ::std::collections::HashMap::new();
  246    246   
                ret.insert(
  247    247   
                    "foo".to_owned(),
  248    248   
                    ::std::option::Option::Some(
  249    249   
                        crate::types::GreetingStruct::builder()
  250    250   
                            .set_hi(::std::option::Option::Some("there".to_owned()))
  251    251   
                            .build(),
  252    252   
                    ),
  253    253   
                );
  254    254   
                ret.insert(
  255    255   
                    "baz".to_owned(),
  256    256   
                    ::std::option::Option::Some(
  257    257   
                        crate::types::GreetingStruct::builder()
  258    258   
                            .set_hi(::std::option::Option::Some("bye".to_owned()))
  259    259   
                            .build(),
  260    260   
                    ),
  261    261   
                );
  262    262   
                ret
  263    263   
            }))
  264    264   
            .send()
  265    265   
            .await;
  266    266   
        let _ = dbg!(result);
  267    267   
        let http_request = request_receiver.expect_request();
  268    268   
        let expected_headers = [
  269    269   
            ("Accept", "application/cbor"),
  270    270   
            ("Content-Type", "application/cbor"),
  271    271   
            ("smithy-protocol", "rpc-v2-cbor"),
  272    272   
        ];
  273    273   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  274    274   
        let required_headers = &["Content-Length"];
  275    275   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  276    276   
        let body = http_request.body().bytes().expect("body should be strict");
  277    277   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  278    278   
            body,
  279    279   
            "v29zcGFyc2VTdHJ1Y3RNYXC/Y2Zvb79iaGlldGhlcmX/Y2Jher9iaGljYnll////",
  280    280   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  281    281   
        ));
  282    282   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  283    283   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  284    284   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", "path was incorrect");
  285    285   
    }
  286    286   
  287    287   
    /// Serializes null map values in sparse maps
  288    288   
    /// Test ID: RpcV2CborSerializesNullMapValues
  289    289   
    #[::tokio::test]
  290    290   
    #[::tracing_test::traced_test]
  291    291   
    async fn rpc_v2_cbor_serializes_null_map_values_request() {
  292         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         292  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  293    293   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  294    294   
  295    295   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  296    296   
        let result = client
  297    297   
            .rpc_v2_cbor_sparse_maps()
  298    298   
            .set_sparse_boolean_map(::std::option::Option::Some({
  299    299   
                let mut ret = ::std::collections::HashMap::new();
  300    300   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  301    301   
                ret
  302    302   
            }))
  303    303   
            .set_sparse_number_map(::std::option::Option::Some({
  304    304   
                let mut ret = ::std::collections::HashMap::new();
  305    305   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  306    306   
                ret
  307    307   
            }))
  308    308   
            .set_sparse_string_map(::std::option::Option::Some({
  309    309   
                let mut ret = ::std::collections::HashMap::new();
  310    310   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  311    311   
                ret
  312    312   
            }))
  313    313   
            .set_sparse_struct_map(::std::option::Option::Some({
  314    314   
                let mut ret = ::std::collections::HashMap::new();
  315    315   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  316    316   
                ret
  317    317   
            }))
  318    318   
            .send()
  319    319   
            .await;
  320    320   
        let _ = dbg!(result);
  321    321   
        let http_request = request_receiver.expect_request();
  322    322   
        let expected_headers = [
  323    323   
            ("Accept", "application/cbor"),
  324    324   
            ("Content-Type", "application/cbor"),
  325    325   
            ("smithy-protocol", "rpc-v2-cbor"),
  326    326   
        ];
  327    327   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  328    328   
        let required_headers = &["Content-Length"];
  329    329   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  330    330   
        let body = http_request.body().bytes().expect("body should be strict");
  331    331   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  332    332   
            body,
  333    333   
            "v3BzcGFyc2VCb29sZWFuTWFwv2F49v9vc3BhcnNlTnVtYmVyTWFwv2F49v9vc3BhcnNlU3RyaW5nTWFwv2F49v9vc3BhcnNlU3RydWN0TWFwv2F49v//",
  334    334   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  335    335   
        ));
  336    336   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  337    337   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  338    338   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", "path was incorrect");
  339    339   
    }
  340    340   
  341    341   
    /// A request that contains a sparse map of sets
  342    342   
    /// Test ID: RpcV2CborSerializesSparseSetMap
  343    343   
    #[::tokio::test]
  344    344   
    #[::tracing_test::traced_test]
  345    345   
    async fn rpc_v2_cbor_serializes_sparse_set_map_request() {
  346         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         346  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  347    347   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  348    348   
  349    349   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  350    350   
        let result = client
  351    351   
            .rpc_v2_cbor_sparse_maps()
  352    352   
            .set_sparse_set_map(::std::option::Option::Some({
  353    353   
                let mut ret = ::std::collections::HashMap::new();
  354    354   
                ret.insert("x".to_owned(), ::std::option::Option::Some(vec![]));
  355    355   
                ret.insert("y".to_owned(), ::std::option::Option::Some(vec!["a".to_owned(), "b".to_owned()]));
  356    356   
                ret
  357    357   
            }))
  358    358   
            .send()
  359    359   
            .await;
  360    360   
        let _ = dbg!(result);
  361    361   
        let http_request = request_receiver.expect_request();
  362    362   
        let expected_headers = [
  363    363   
            ("Accept", "application/cbor"),
  364    364   
            ("Content-Type", "application/cbor"),
  365    365   
            ("smithy-protocol", "rpc-v2-cbor"),
  366    366   
        ];
  367    367   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  368    368   
        let required_headers = &["Content-Length"];
  369    369   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  370    370   
        let body = http_request.body().bytes().expect("body should be strict");
  371    371   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  372    372   
            body,
  373    373   
            "v2xzcGFyc2VTZXRNYXC/YXif/2F5n2FhYWL///8=",
  374    374   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  375    375   
        ));
  376    376   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  377    377   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  378    378   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", "path was incorrect");
  379    379   
    }
  380    380   
  381    381   
    /// A request that contains a sparse map of sets.
  382    382   
    /// Test ID: RpcV2CborSerializesSparseSetMapAndRetainsNull
  383    383   
    #[::tokio::test]
  384    384   
    #[::tracing_test::traced_test]
  385    385   
    async fn rpc_v2_cbor_serializes_sparse_set_map_and_retains_null_request() {
  386         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         386  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  387    387   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  388    388   
  389    389   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  390    390   
        let result = client
  391    391   
            .rpc_v2_cbor_sparse_maps()
  392    392   
            .set_sparse_set_map(::std::option::Option::Some({
  393    393   
                let mut ret = ::std::collections::HashMap::new();
  394    394   
                ret.insert("x".to_owned(), ::std::option::Option::Some(vec![]));
  395    395   
                ret.insert("y".to_owned(), ::std::option::Option::Some(vec!["a".to_owned(), "b".to_owned()]));
  396    396   
                ret.insert("z".to_owned(), ::std::option::Option::None);
  397    397   
                ret
  398    398   
            }))
  399    399   
            .send()
  400    400   
            .await;
  401    401   
        let _ = dbg!(result);
  402    402   
        let http_request = request_receiver.expect_request();
  403    403   
        let expected_headers = [
  404    404   
            ("Accept", "application/cbor"),
  405    405   
            ("Content-Type", "application/cbor"),
  406    406   
            ("smithy-protocol", "rpc-v2-cbor"),
  407    407   
        ];
  408    408   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  409    409   
        let required_headers = &["Content-Length"];
  410    410   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  411    411   
        let body = http_request.body().bytes().expect("body should be strict");
  412    412   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  413    413   
            body,
  414    414   
            "v2xzcGFyc2VTZXRNYXC/YXif/2F5n2FhYWL/YXr2//8=",
  415    415   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  416    416   
        ));
  417    417   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  418    418   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  419    419   
        ::pretty_assertions::assert_eq!(uri.path(), "/service/RpcV2Protocol/operation/RpcV2CborSparseMaps", "path was incorrect");
  420    420   
    }
  421    421   
  422    422   
    /// Ensure that 0 and false are sent over the wire in all maps and lists
  423    423   
    /// Test ID: RpcV2CborSerializesZeroValuesInSparseMaps
  424    424   
    #[::tokio::test]
  425    425   
    #[::tracing_test::traced_test]
  426    426   
    async fn rpc_v2_cbor_serializes_zero_values_in_sparse_maps_request() {
  427         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         427  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  428    428   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  429    429   
  430    430   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  431    431   
        let result = client
  432    432   
            .rpc_v2_cbor_sparse_maps()
  433    433   
            .set_sparse_number_map(::std::option::Option::Some({
  434    434   
                let mut ret = ::std::collections::HashMap::new();
  435    435   
                ret.insert("x".to_owned(), ::std::option::Option::Some(0));
  436    436   
                ret
  437    437   
            }))

tmp-codegen-diff/codegen-client-test/rpcv2Cbor/rust-client-codegen/src/operation/simple_scalar_properties.rs

@@ -215,215 +448,448 @@
  235    235   
#[allow(unreachable_code, unused_variables)]
  236    236   
#[cfg(test)]
  237    237   
mod simple_scalar_properties_test {
  238    238   
    use ::aws_smithy_protocol_test::FloatEquals;
  239    239   
  240    240   
    /// Serializes simple scalar properties
  241    241   
    /// Test ID: RpcV2CborSimpleScalarProperties
  242    242   
    #[::tokio::test]
  243    243   
    #[::tracing_test::traced_test]
  244    244   
    async fn rpc_v2_cbor_simple_scalar_properties_request() {
  245         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         245  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  246    246   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  247    247   
  248    248   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  249    249   
        let result = client
  250    250   
            .simple_scalar_properties()
  251    251   
            .set_byte_value(::std::option::Option::Some(5))
  252    252   
            .set_double_value(::std::option::Option::Some(1.889_f64))
  253    253   
            .set_false_boolean_value(::std::option::Option::Some(false))
  254    254   
            .set_float_value(::std::option::Option::Some(7.625_f32))
  255    255   
            .set_integer_value(::std::option::Option::Some(256))
  256    256   
            .set_long_value(::std::option::Option::Some(9873))
  257    257   
            .set_short_value(::std::option::Option::Some(9898))
  258    258   
            .set_string_value(::std::option::Option::Some("simple".to_owned()))
  259    259   
            .set_true_boolean_value(::std::option::Option::Some(true))
  260    260   
            .set_blob_value(::std::option::Option::Some(::aws_smithy_types::Blob::new("foo")))
  261    261   
            .send()
  262    262   
            .await;
  263    263   
        let _ = dbg!(result);
  264    264   
        let http_request = request_receiver.expect_request();
  265    265   
        let expected_headers = [
  266    266   
            ("Accept", "application/cbor"),
  267    267   
            ("Content-Type", "application/cbor"),
  268    268   
            ("smithy-protocol", "rpc-v2-cbor"),
  269    269   
        ];
  270    270   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  271    271   
        let required_headers = &["Content-Length"];
  272    272   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  273    273   
        let body = http_request.body().bytes().expect("body should be strict");
  274    274   
        ::aws_smithy_protocol_test::assert_ok(
  275    275   
        ::aws_smithy_protocol_test::validate_body(body, "v2lieXRlVmFsdWUFa2RvdWJsZVZhbHVl+z/+OVgQYk3TcWZhbHNlQm9vbGVhblZhbHVl9GpmbG9hdFZhbHVl+kD0AABsaW50ZWdlclZhbHVlGQEAaWxvbmdWYWx1ZRkmkWpzaG9ydFZhbHVlGSaqa3N0cmluZ1ZhbHVlZnNpbXBsZXB0cnVlQm9vbGVhblZhbHVl9WlibG9iVmFsdWVDZm9v/w==", ::aws_smithy_protocol_test::MediaType::from("application/cbor"))
  276    276   
        );
  277    277   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  278    278   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  279    279   
        ::pretty_assertions::assert_eq!(
  280    280   
            uri.path(),
  281    281   
            "/service/RpcV2Protocol/operation/SimpleScalarProperties",
  282    282   
            "path was incorrect"
  283    283   
        );
  284    284   
    }
  285    285   
  286    286   
    /// RpcV2 Cbor should not serialize null structure values
  287    287   
    /// Test ID: RpcV2CborClientDoesntSerializeNullStructureValues
  288    288   
    #[::tokio::test]
  289    289   
    #[::tracing_test::traced_test]
  290    290   
    async fn rpc_v2_cbor_client_doesnt_serialize_null_structure_values_request() {
  291         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         291  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  292    292   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  293    293   
  294    294   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  295    295   
        let result = client
  296    296   
            .simple_scalar_properties()
  297    297   
            .set_string_value(::std::option::Option::None)
  298    298   
            .send()
  299    299   
            .await;
  300    300   
        let _ = dbg!(result);
  301    301   
        let http_request = request_receiver.expect_request();
  302    302   
        let expected_headers = [
  303    303   
            ("Accept", "application/cbor"),
  304    304   
            ("Content-Type", "application/cbor"),
  305    305   
            ("smithy-protocol", "rpc-v2-cbor"),
  306    306   
        ];
  307    307   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  308    308   
        let required_headers = &["Content-Length"];
  309    309   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  310    310   
        let body = http_request.body().bytes().expect("body should be strict");
  311    311   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  312    312   
            body,
  313    313   
            "v/8=",
  314    314   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  315    315   
        ));
  316    316   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  317    317   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  318    318   
        ::pretty_assertions::assert_eq!(
  319    319   
            uri.path(),
  320    320   
            "/service/RpcV2Protocol/operation/SimpleScalarProperties",
  321    321   
            "path was incorrect"
  322    322   
        );
  323    323   
    }
  324    324   
  325    325   
    /// Supports handling NaN float values.
  326    326   
    /// Test ID: RpcV2CborSupportsNaNFloatInputs
  327    327   
    #[::tokio::test]
  328    328   
    #[::tracing_test::traced_test]
  329    329   
    async fn rpc_v2_cbor_supports_na_n_float_inputs_request() {
  330         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         330  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  331    331   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  332    332   
  333    333   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  334    334   
        let result = client
  335    335   
            .simple_scalar_properties()
  336    336   
            .set_double_value(::std::option::Option::Some(
  337    337   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  338    338   
            ))
  339    339   
            .set_float_value(::std::option::Option::Some(
  340    340   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  341    341   
            ))
  342    342   
            .send()
  343    343   
            .await;
  344    344   
        let _ = dbg!(result);
  345    345   
        let http_request = request_receiver.expect_request();
  346    346   
        let expected_headers = [
  347    347   
            ("Accept", "application/cbor"),
  348    348   
            ("Content-Type", "application/cbor"),
  349    349   
            ("smithy-protocol", "rpc-v2-cbor"),
  350    350   
        ];
  351    351   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  352    352   
        let required_headers = &["Content-Length"];
  353    353   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  354    354   
        let body = http_request.body().bytes().expect("body should be strict");
  355    355   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  356    356   
            body,
  357    357   
            "v2tkb3VibGVWYWx1Zft/+AAAAAAAAGpmbG9hdFZhbHVl+n/AAAD/",
  358    358   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  359    359   
        ));
  360    360   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  361    361   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  362    362   
        ::pretty_assertions::assert_eq!(
  363    363   
            uri.path(),
  364    364   
            "/service/RpcV2Protocol/operation/SimpleScalarProperties",
  365    365   
            "path was incorrect"
  366    366   
        );
  367    367   
    }
  368    368   
  369    369   
    /// Supports handling Infinity float values.
  370    370   
    /// Test ID: RpcV2CborSupportsInfinityFloatInputs
  371    371   
    #[::tokio::test]
  372    372   
    #[::tracing_test::traced_test]
  373    373   
    async fn rpc_v2_cbor_supports_infinity_float_inputs_request() {
  374         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         374  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  375    375   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  376    376   
  377    377   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  378    378   
        let result = client
  379    379   
            .simple_scalar_properties()
  380    380   
            .set_double_value(::std::option::Option::Some(
  381    381   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  382    382   
            ))
  383    383   
            .set_float_value(::std::option::Option::Some(
  384    384   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  385    385   
            ))
  386    386   
            .send()
  387    387   
            .await;
  388    388   
        let _ = dbg!(result);
  389    389   
        let http_request = request_receiver.expect_request();
  390    390   
        let expected_headers = [
  391    391   
            ("Accept", "application/cbor"),
  392    392   
            ("Content-Type", "application/cbor"),
  393    393   
            ("smithy-protocol", "rpc-v2-cbor"),
  394    394   
        ];
  395    395   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  396    396   
        let required_headers = &["Content-Length"];
  397    397   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  398    398   
        let body = http_request.body().bytes().expect("body should be strict");
  399    399   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  400    400   
            body,
  401    401   
            "v2tkb3VibGVWYWx1Zft/8AAAAAAAAGpmbG9hdFZhbHVl+n+AAAD/",
  402    402   
            ::aws_smithy_protocol_test::MediaType::from("application/cbor"),
  403    403   
        ));
  404    404   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  405    405   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  406    406   
        ::pretty_assertions::assert_eq!(
  407    407   
            uri.path(),
  408    408   
            "/service/RpcV2Protocol/operation/SimpleScalarProperties",
  409    409   
            "path was incorrect"
  410    410   
        );
  411    411   
    }
  412    412   
  413    413   
    /// Supports handling Infinity float values.
  414    414   
    /// Test ID: RpcV2CborSupportsNegativeInfinityFloatInputs
  415    415   
    #[::tokio::test]
  416    416   
    #[::tracing_test::traced_test]
  417    417   
    async fn rpc_v2_cbor_supports_negative_infinity_float_inputs_request() {
  418         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         418  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  419    419   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  420    420   
  421    421   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  422    422   
        let result = client
  423    423   
            .simple_scalar_properties()
  424    424   
            .set_double_value(::std::option::Option::Some(
  425    425   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  426    426   
            ))
  427    427   
            .set_float_value(::std::option::Option::Some(
  428    428   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),