Client Test

Client Test

rev. 3d2cf9bfcccf2cb5e5660fe2685c9174956bfcad (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/query_precedence.rs

@@ -221,221 +281,281 @@
  241    241   
  242    242   
#[allow(unreachable_code, unused_variables)]
  243    243   
#[cfg(test)]
  244    244   
mod query_precedence_test {
  245    245   
  246    246   
    /// Prefer named query parameters when serializing
  247    247   
    /// Test ID: RestJsonQueryPrecedence
  248    248   
    #[::tokio::test]
  249    249   
    #[::tracing_test::traced_test]
  250    250   
    async fn rest_json_query_precedence_request() {
  251         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         251  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  252    252   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  253    253   
  254    254   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  255    255   
        let result = client
  256    256   
            .query_precedence()
  257    257   
            .set_foo(::std::option::Option::Some("named".to_owned()))
  258    258   
            .set_baz(::std::option::Option::Some({
  259    259   
                let mut ret = ::std::collections::HashMap::new();
  260    260   
                ret.insert("bar".to_owned(), "fromMap".to_owned());
  261    261   
                ret.insert("qux".to_owned(), "alsoFromMap".to_owned());

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

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

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

@@ -212,212 +405,405 @@
  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: RestJsonSimpleScalarProperties
  239    239   
    #[::tokio::test]
  240    240   
    #[::tracing_test::traced_test]
  241    241   
    async fn rest_json_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))
  253    253   
            .set_short_value(::std::option::Option::Some(2))
  254    254   
            .set_integer_value(::std::option::Option::Some(3))
  255    255   
            .set_long_value(::std::option::Option::Some(4))
  256    256   
            .set_float_value(::std::option::Option::Some(5.5_f32))
  257    257   
            .set_double_value(::std::option::Option::Some(6.5_f64))
  258    258   
            .send()
  259    259   
            .await;
  260    260   
        let _ = dbg!(result);
  261    261   
        let http_request = request_receiver.expect_request();
  262    262   
        let expected_headers = [("Content-Type", "application/json"), ("X-Foo", "Foo")];
  263    263   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  264    264   
        let body = http_request.body().bytes().expect("body should be strict");
  265    265   
        ::aws_smithy_protocol_test::assert_ok(
  266    266   
        ::aws_smithy_protocol_test::validate_body(body, "{\n    \"stringValue\": \"string\",\n    \"trueBooleanValue\": true,\n    \"falseBooleanValue\": false,\n    \"byteValue\": 1,\n    \"shortValue\": 2,\n    \"integerValue\": 3,\n    \"longValue\": 4,\n    \"floatValue\": 5.5,\n    \"DoubleDribble\": 6.5\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  267    267   
        );
  268    268   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  269    269   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  270    270   
        ::pretty_assertions::assert_eq!(uri.path(), "/SimpleScalarProperties", "path was incorrect");
  271    271   
    }
  272    272   
  273    273   
    /// Rest Json should not serialize null structure values
  274    274   
    /// Test ID: RestJsonDoesntSerializeNullStructureValues
  275    275   
    #[::tokio::test]
  276    276   
    #[::tracing_test::traced_test]
  277    277   
    async fn rest_json_doesnt_serialize_null_structure_values_request() {
  278         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         278  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  279    279   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  280    280   
  281    281   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  282    282   
        let result = client
  283    283   
            .simple_scalar_properties()
  284    284   
            .set_string_value(::std::option::Option::None)
  285    285   
            .send()
  286    286   
            .await;
  287    287   
        let _ = dbg!(result);
  288    288   
        let http_request = request_receiver.expect_request();
  289    289   
        let expected_headers = [("Content-Type", "application/json")];
  290    290   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  291    291   
        let body = http_request.body().bytes().expect("body should be strict");
  292    292   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  293    293   
            body,
  294    294   
            "{}",
  295    295   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  296    296   
        ));
  297    297   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  298    298   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  299    299   
        ::pretty_assertions::assert_eq!(uri.path(), "/SimpleScalarProperties", "path was incorrect");
  300    300   
    }
  301    301   
  302    302   
    /// Supports handling NaN float values.
  303    303   
    /// Test ID: RestJsonSupportsNaNFloatInputs
  304    304   
    #[::tokio::test]
  305    305   
    #[::tracing_test::traced_test]
  306    306   
    async fn rest_json_supports_na_n_float_inputs_request() {
  307         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         307  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  308    308   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  309    309   
  310    310   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  311    311   
        let result = client
  312    312   
            .simple_scalar_properties()
  313    313   
            .set_float_value(::std::option::Option::Some(
  314    314   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  315    315   
            ))
  316    316   
            .set_double_value(::std::option::Option::Some(
  317    317   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  318    318   
            ))
  319    319   
            .send()
  320    320   
            .await;
  321    321   
        let _ = dbg!(result);
  322    322   
        let http_request = request_receiver.expect_request();
  323    323   
        let expected_headers = [("Content-Type", "application/json")];
  324    324   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  325    325   
        let body = http_request.body().bytes().expect("body should be strict");
  326    326   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  327    327   
            body,
  328    328   
            "{\n    \"floatValue\": \"NaN\",\n    \"DoubleDribble\": \"NaN\"\n}",
  329    329   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  330    330   
        ));
  331    331   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  332    332   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  333    333   
        ::pretty_assertions::assert_eq!(uri.path(), "/SimpleScalarProperties", "path was incorrect");
  334    334   
    }
  335    335   
  336    336   
    /// Supports handling Infinity float values.
  337    337   
    /// Test ID: RestJsonSupportsInfinityFloatInputs
  338    338   
    #[::tokio::test]
  339    339   
    #[::tracing_test::traced_test]
  340    340   
    async fn rest_json_supports_infinity_float_inputs_request() {
  341         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         341  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  342    342   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  343    343   
  344    344   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  345    345   
        let result = client
  346    346   
            .simple_scalar_properties()
  347    347   
            .set_float_value(::std::option::Option::Some(
  348    348   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  349    349   
            ))
  350    350   
            .set_double_value(::std::option::Option::Some(
  351    351   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  352    352   
            ))
  353    353   
            .send()
  354    354   
            .await;
  355    355   
        let _ = dbg!(result);
  356    356   
        let http_request = request_receiver.expect_request();
  357    357   
        let expected_headers = [("Content-Type", "application/json")];
  358    358   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  359    359   
        let body = http_request.body().bytes().expect("body should be strict");
  360    360   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  361    361   
            body,
  362    362   
            "{\n    \"floatValue\": \"Infinity\",\n    \"DoubleDribble\": \"Infinity\"\n}",
  363    363   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  364    364   
        ));
  365    365   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  366    366   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  367    367   
        ::pretty_assertions::assert_eq!(uri.path(), "/SimpleScalarProperties", "path was incorrect");
  368    368   
    }
  369    369   
  370    370   
    /// Supports handling -Infinity float values.
  371    371   
    /// Test ID: RestJsonSupportsNegativeInfinityFloatInputs
  372    372   
    #[::tokio::test]
  373    373   
    #[::tracing_test::traced_test]
  374    374   
    async fn rest_json_supports_negative_infinity_float_inputs_request() {
  375         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         375  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  376    376   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  377    377   
  378    378   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  379    379   
        let result = client
  380    380   
            .simple_scalar_properties()
  381    381   
            .set_float_value(::std::option::Option::Some(
  382    382   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  383    383   
            ))
  384    384   
            .set_double_value(::std::option::Option::Some(
  385    385   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/sparse_json_lists.rs

@@ -202,202 +262,262 @@
  222    222   
  223    223   
#[allow(unreachable_code, unused_variables)]
  224    224   
#[cfg(test)]
  225    225   
mod sparse_json_lists_test {
  226    226   
  227    227   
    /// Serializes null values in sparse lists
  228    228   
    /// Test ID: RestJsonSparseListsSerializeNull
  229    229   
    #[::tokio::test]
  230    230   
    #[::tracing_test::traced_test]
  231    231   
    async fn rest_json_sparse_lists_serialize_null_request() {
  232         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         232  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  233    233   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  234    234   
  235    235   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  236    236   
        let result = client
  237    237   
            .sparse_json_lists()
  238    238   
            .set_sparse_string_list(::std::option::Option::Some(vec![
  239    239   
                ::std::option::Option::None,
  240    240   
                ::std::option::Option::Some("hi".to_owned()),
  241    241   
            ]))
  242    242   
            .set_sparse_short_list(::std::option::Option::Some(vec![

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/sparse_json_maps.rs

@@ -202,202 +426,426 @@
  222    222   
  223    223   
#[allow(unreachable_code, unused_variables)]
  224    224   
#[cfg(test)]
  225    225   
mod sparse_json_maps_test {
  226    226   
  227    227   
    /// Serializes JSON maps
  228    228   
    /// Test ID: RestJsonSparseJsonMaps
  229    229   
    #[::tokio::test]
  230    230   
    #[::tracing_test::traced_test]
  231    231   
    async fn rest_json_sparse_json_maps_request() {
  232         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         232  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  233    233   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  234    234   
  235    235   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  236    236   
        let result = client
  237    237   
            .sparse_json_maps()
  238    238   
            .set_sparse_struct_map(::std::option::Option::Some({
  239    239   
                let mut ret = ::std::collections::HashMap::new();
  240    240   
                ret.insert(
  241    241   
                    "foo".to_owned(),
  242    242   
                    ::std::option::Option::Some(
  243    243   
                        crate::types::GreetingStruct::builder()
  244    244   
                            .set_hi(::std::option::Option::Some("there".to_owned()))
  245    245   
                            .build(),
  246    246   
                    ),
  247    247   
                );
  248    248   
                ret.insert(
  249    249   
                    "baz".to_owned(),
  250    250   
                    ::std::option::Option::Some(
  251    251   
                        crate::types::GreetingStruct::builder()
  252    252   
                            .set_hi(::std::option::Option::Some("bye".to_owned()))
  253    253   
                            .build(),
  254    254   
                    ),
  255    255   
                );
  256    256   
                ret
  257    257   
            }))
  258    258   
            .send()
  259    259   
            .await;
  260    260   
        let _ = dbg!(result);
  261    261   
        let http_request = request_receiver.expect_request();
  262    262   
        let expected_headers = [("Content-Type", "application/json")];
  263    263   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  264    264   
        let body = http_request.body().bytes().expect("body should be strict");
  265    265   
        ::aws_smithy_protocol_test::assert_ok(
  266    266   
        ::aws_smithy_protocol_test::validate_body(body, "{\n    \"sparseStructMap\": {\n        \"foo\": {\n            \"hi\": \"there\"\n        },\n        \"baz\": {\n            \"hi\": \"bye\"\n        }\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  267    267   
        );
  268    268   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  269    269   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  270    270   
        ::pretty_assertions::assert_eq!(uri.path(), "/SparseJsonMaps", "path was incorrect");
  271    271   
    }
  272    272   
  273    273   
    /// Serializes JSON map values in sparse maps
  274    274   
    /// Test ID: RestJsonSerializesSparseNullMapValues
  275    275   
    #[::tokio::test]
  276    276   
    #[::tracing_test::traced_test]
  277    277   
    async fn rest_json_serializes_sparse_null_map_values_request() {
  278         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         278  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  279    279   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  280    280   
  281    281   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  282    282   
        let result = client
  283    283   
            .sparse_json_maps()
  284    284   
            .set_sparse_boolean_map(::std::option::Option::Some({
  285    285   
                let mut ret = ::std::collections::HashMap::new();
  286    286   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  287    287   
                ret
  288    288   
            }))
  289    289   
            .set_sparse_number_map(::std::option::Option::Some({
  290    290   
                let mut ret = ::std::collections::HashMap::new();
  291    291   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  292    292   
                ret
  293    293   
            }))
  294    294   
            .set_sparse_string_map(::std::option::Option::Some({
  295    295   
                let mut ret = ::std::collections::HashMap::new();
  296    296   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  297    297   
                ret
  298    298   
            }))
  299    299   
            .set_sparse_struct_map(::std::option::Option::Some({
  300    300   
                let mut ret = ::std::collections::HashMap::new();
  301    301   
                ret.insert("x".to_owned(), ::std::option::Option::None);
  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 = [("Content-Type", "application/json")];
  309    309   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  310    310   
        let body = http_request.body().bytes().expect("body should be strict");
  311    311   
        ::aws_smithy_protocol_test::assert_ok(
  312    312   
        ::aws_smithy_protocol_test::validate_body(body, "{\n    \"sparseBooleanMap\": {\n        \"x\": null\n    },\n    \"sparseNumberMap\": {\n        \"x\": null\n    },\n    \"sparseStringMap\": {\n        \"x\": null\n    },\n    \"sparseStructMap\": {\n        \"x\": null\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  313    313   
        );
  314    314   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  315    315   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  316    316   
        ::pretty_assertions::assert_eq!(uri.path(), "/SparseJsonMaps", "path was incorrect");
  317    317   
    }
  318    318   
  319    319   
    /// Ensure that 0 and false are sent over the wire in all maps and lists
  320    320   
    /// Test ID: RestJsonSerializesZeroValuesInSparseMaps
  321    321   
    #[::tokio::test]
  322    322   
    #[::tracing_test::traced_test]
  323    323   
    async fn rest_json_serializes_zero_values_in_sparse_maps_request() {
  324         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         324  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  325    325   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  326    326   
  327    327   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  328    328   
        let result = client
  329    329   
            .sparse_json_maps()
  330    330   
            .set_sparse_number_map(::std::option::Option::Some({
  331    331   
                let mut ret = ::std::collections::HashMap::new();
  332    332   
                ret.insert("x".to_owned(), ::std::option::Option::Some(0));
  333    333   
                ret
  334    334   
            }))
  335    335   
            .set_sparse_boolean_map(::std::option::Option::Some({
  336    336   
                let mut ret = ::std::collections::HashMap::new();
  337    337   
                ret.insert("x".to_owned(), ::std::option::Option::Some(false));
  338    338   
                ret
  339    339   
            }))
  340    340   
            .send()
  341    341   
            .await;
  342    342   
        let _ = dbg!(result);
  343    343   
        let http_request = request_receiver.expect_request();
  344    344   
        let expected_headers = [("Content-Type", "application/json")];
  345    345   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  346    346   
        let body = http_request.body().bytes().expect("body should be strict");
  347    347   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  348    348   
            body,
  349    349   
            "{\n    \"sparseNumberMap\": {\n        \"x\": 0\n    },\n    \"sparseBooleanMap\": {\n        \"x\": false\n    }\n}",
  350    350   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  351    351   
        ));
  352    352   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  353    353   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  354    354   
        ::pretty_assertions::assert_eq!(uri.path(), "/SparseJsonMaps", "path was incorrect");
  355    355   
    }
  356    356   
  357    357   
    /// A request that contains a sparse map of sets
  358    358   
    /// Test ID: RestJsonSerializesSparseSetMap
  359    359   
    #[::tokio::test]
  360    360   
    #[::tracing_test::traced_test]
  361    361   
    async fn rest_json_serializes_sparse_set_map_request() {
  362         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         362  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  363    363   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  364    364   
  365    365   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  366    366   
        let result = client
  367    367   
            .sparse_json_maps()
  368    368   
            .set_sparse_set_map(::std::option::Option::Some({
  369    369   
                let mut ret = ::std::collections::HashMap::new();
  370    370   
                ret.insert("x".to_owned(), ::std::option::Option::Some(vec![]));
  371    371   
                ret.insert("y".to_owned(), ::std::option::Option::Some(vec!["a".to_owned(), "b".to_owned()]));
  372    372   
                ret
  373    373   
            }))
  374    374   
            .send()
  375    375   
            .await;
  376    376   
        let _ = dbg!(result);
  377    377   
        let http_request = request_receiver.expect_request();
  378    378   
        let expected_headers = [("Content-Type", "application/json")];
  379    379   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  380    380   
        let body = http_request.body().bytes().expect("body should be strict");
  381    381   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  382    382   
            body,
  383    383   
            "{\n    \"sparseSetMap\": {\n        \"x\": [],\n        \"y\": [\"a\", \"b\"]\n    }\n}",
  384    384   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  385    385   
        ));
  386    386   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  387    387   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  388    388   
        ::pretty_assertions::assert_eq!(uri.path(), "/SparseJsonMaps", "path was incorrect");
  389    389   
    }
  390    390   
  391    391   
    /// A request that contains a sparse map of sets.
  392    392   
    /// Test ID: RestJsonSerializesSparseSetMapAndRetainsNull
  393    393   
    #[::tokio::test]
  394    394   
    #[::tracing_test::traced_test]
  395    395   
    async fn rest_json_serializes_sparse_set_map_and_retains_null_request() {
  396         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         396  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  397    397   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  398    398   
  399    399   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  400    400   
        let result = client
  401    401   
            .sparse_json_maps()
  402    402   
            .set_sparse_set_map(::std::option::Option::Some({
  403    403   
                let mut ret = ::std::collections::HashMap::new();
  404    404   
                ret.insert("x".to_owned(), ::std::option::Option::Some(vec![]));
  405    405   
                ret.insert("y".to_owned(), ::std::option::Option::Some(vec!["a".to_owned(), "b".to_owned()]));
  406    406   
                ret.insert("z".to_owned(), ::std::option::Option::None);

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/streaming_traits.rs

@@ -214,214 +306,306 @@
  234    234   
  235    235   
#[allow(unreachable_code, unused_variables)]
  236    236   
#[cfg(test)]
  237    237   
mod streaming_traits_test {
  238    238   
  239    239   
    /// Serializes a blob in the HTTP payload
  240    240   
    /// Test ID: RestJsonStreamingTraitsWithBlob
  241    241   
    #[::tokio::test]
  242    242   
    #[::tracing_test::traced_test]
  243    243   
    async fn rest_json_streaming_traits_with_blob_request() {
  244         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         244  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  245    245   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  246    246   
  247    247   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  248    248   
        let result = client
  249    249   
            .streaming_traits()
  250    250   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  251    251   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::byte_stream::ByteStream::from_static(
  252    252   
                b"blobby blob blob",
  253    253   
            )))
  254    254   
            .send()
  255    255   
            .await;
  256    256   
        let _ = dbg!(result);
  257    257   
        let http_request = request_receiver.expect_request();
  258    258   
        let expected_headers = [("Content-Type", "application/octet-stream"), ("X-Foo", "Foo")];
  259    259   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  260    260   
        let body = http_request.body().bytes().expect("body should be strict");
  261    261   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  262    262   
            body,
  263    263   
            "blobby blob blob",
  264    264   
            ::aws_smithy_protocol_test::MediaType::from("application/octet-stream"),
  265    265   
        ));
  266    266   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  267    267   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  268    268   
        ::pretty_assertions::assert_eq!(uri.path(), "/StreamingTraits", "path was incorrect");
  269    269   
    }
  270    270   
  271    271   
    /// Serializes an empty blob in the HTTP payload
  272    272   
    /// Test ID: RestJsonStreamingTraitsWithNoBlobBody
  273    273   
    #[::tokio::test]
  274    274   
    #[::tracing_test::traced_test]
  275    275   
    async fn rest_json_streaming_traits_with_no_blob_body_request() {
  276         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         276  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  277    277   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  278    278   
  279    279   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  280    280   
        let result = client
  281    281   
            .streaming_traits()
  282    282   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  283    283   
            .send()
  284    284   
            .await;
  285    285   
        let _ = dbg!(result);
  286    286   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/streaming_traits_require_length.rs

@@ -210,210 +304,304 @@
  230    230   
  231    231   
#[allow(unreachable_code, unused_variables)]
  232    232   
#[cfg(test)]
  233    233   
mod streaming_traits_require_length_test {
  234    234   
  235    235   
    /// Serializes a blob in the HTTP payload with a required length
  236    236   
    /// Test ID: RestJsonStreamingTraitsRequireLengthWithBlob
  237    237   
    #[::tokio::test]
  238    238   
    #[::tracing_test::traced_test]
  239    239   
    async fn rest_json_streaming_traits_require_length_with_blob_request() {
  240         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         240  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  241    241   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  242    242   
  243    243   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  244    244   
        let result = client
  245    245   
            .streaming_traits_require_length()
  246    246   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  247    247   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::byte_stream::ByteStream::from_static(
  248    248   
                b"blobby blob blob",
  249    249   
            )))
  250    250   
            .send()
  251    251   
            .await;
  252    252   
        let _ = dbg!(result);
  253    253   
        let http_request = request_receiver.expect_request();
  254    254   
        let expected_headers = [("Content-Type", "application/octet-stream"), ("X-Foo", "Foo")];
  255    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  256    256   
        let required_headers = &["Content-Length"];
  257    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  258    258   
        let body = http_request.body().bytes().expect("body should be strict");
  259    259   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  260    260   
            body,
  261    261   
            "blobby blob blob",
  262    262   
            ::aws_smithy_protocol_test::MediaType::from("application/octet-stream"),
  263    263   
        ));
  264    264   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  265    265   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  266    266   
        ::pretty_assertions::assert_eq!(uri.path(), "/StreamingTraitsRequireLength", "path was incorrect");
  267    267   
    }
  268    268   
  269    269   
    /// Serializes an empty blob in the HTTP payload
  270    270   
    /// Test ID: RestJsonStreamingTraitsRequireLengthWithNoBlobBody
  271    271   
    #[::tokio::test]
  272    272   
    #[::tracing_test::traced_test]
  273    273   
    async fn rest_json_streaming_traits_require_length_with_no_blob_body_request() {
  274         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         274  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  275    275   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  276    276   
  277    277   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  278    278   
        let result = client
  279    279   
            .streaming_traits_require_length()
  280    280   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  281    281   
            .send()
  282    282   
            .await;
  283    283   
        let _ = dbg!(result);
  284    284   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/streaming_traits_with_media_type.rs

@@ -223,223 +283,283 @@
  243    243   
  244    244   
#[allow(unreachable_code, unused_variables)]
  245    245   
#[cfg(test)]
  246    246   
mod streaming_traits_with_media_type_test {
  247    247   
  248    248   
    /// Serializes a blob in the HTTP payload with a content-type
  249    249   
    /// Test ID: RestJsonStreamingTraitsWithMediaTypeWithBlob
  250    250   
    #[::tokio::test]
  251    251   
    #[::tracing_test::traced_test]
  252    252   
    async fn rest_json_streaming_traits_with_media_type_with_blob_request() {
  253         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         253  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  254    254   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  255    255   
  256    256   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  257    257   
        let result = client
  258    258   
            .streaming_traits_with_media_type()
  259    259   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  260    260   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::byte_stream::ByteStream::from_static(
  261    261   
                b"blobby blob blob",
  262    262   
            )))
  263    263   
            .send()

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_body_structure.rs

@@ -209,209 +302,302 @@
  229    229   
  230    230   
#[allow(unreachable_code, unused_variables)]
  231    231   
#[cfg(test)]
  232    232   
mod test_body_structure_test {
  233    233   
  234    234   
    /// Serializes a structure
  235    235   
    /// Test ID: RestJsonTestBodyStructure
  236    236   
    #[::tokio::test]
  237    237   
    #[::tracing_test::traced_test]
  238    238   
    async fn rest_json_test_body_structure_request() {
  239         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         239  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  240    240   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  241    241   
  242    242   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  243    243   
        let result = client
  244    244   
            .test_body_structure()
  245    245   
            .set_test_config(::std::option::Option::Some(
  246    246   
                crate::types::TestConfig::builder().set_timeout(::std::option::Option::Some(10)).build(),
  247    247   
            ))
  248    248   
            .send()
  249    249   
            .await;
  250    250   
        let _ = dbg!(result);
  251    251   
        let http_request = request_receiver.expect_request();
  252    252   
        let expected_headers = [("Content-Type", "application/json")];
  253    253   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    254   
        let required_headers = &["Content-Length"];
  255    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  256    256   
        let body = http_request.body().bytes().expect("body should be strict");
  257    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  258    258   
            body,
  259    259   
            "{\"testConfig\":\n    {\"timeout\": 10}\n}",
  260    260   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  261    261   
        ));
  262    262   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  263    263   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  264    264   
        ::pretty_assertions::assert_eq!(uri.path(), "/body", "path was incorrect");
  265    265   
    }
  266    266   
  267    267   
    /// Serializes an empty structure in the body
  268    268   
    /// Test ID: RestJsonHttpWithEmptyBody
  269    269   
    #[::tokio::test]
  270    270   
    #[::tracing_test::traced_test]
  271    271   
    async fn rest_json_http_with_empty_body_request() {
  272         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         272  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  273    273   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  274    274   
  275    275   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  276    276   
        let result = client.test_body_structure().send().await;
  277    277   
        let _ = dbg!(result);
  278    278   
        let http_request = request_receiver.expect_request();
  279    279   
        let expected_headers = [("Content-Type", "application/json")];
  280    280   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  281    281   
        let required_headers = &["Content-Length"];
  282    282   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_get_no_input_no_payload.rs

@@ -204,204 +264,264 @@
  224    224   
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227    227   
mod test_get_no_input_no_payload_test {
  228    228   
  229    229   
    /// Serializes a GET request for an operation with no input, and therefore no modeled body
  230    230   
    /// Test ID: RestJsonHttpGetWithNoInput
  231    231   
    #[::tokio::test]
  232    232   
    #[::tracing_test::traced_test]
  233    233   
    async fn rest_json_http_get_with_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.test_get_no_input_no_payload().send().await;
  239    239   
        let _ = dbg!(result);
  240    240   
        let http_request = request_receiver.expect_request();
  241    241   
        let forbidden_headers = &["Content-Type", "Content-Length"];
  242    242   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(http_request.headers(), forbidden_headers));
  243    243   
        let body = http_request.body().bytes().expect("body should be strict");
  244    244   
        // No body.

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_get_no_payload.rs

@@ -199,199 +281,281 @@
  219    219   
  220    220   
#[allow(unreachable_code, unused_variables)]
  221    221   
#[cfg(test)]
  222    222   
mod test_get_no_payload_test {
  223    223   
  224    224   
    /// Serializes a GET request with no modeled body
  225    225   
    /// Test ID: RestJsonHttpGetWithNoModeledBody
  226    226   
    #[::tokio::test]
  227    227   
    #[::tracing_test::traced_test]
  228    228   
    async fn rest_json_http_get_with_no_modeled_body_request() {
  229         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         229  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  230    230   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  231    231   
  232    232   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  233    233   
        let result = client.test_get_no_payload().send().await;
  234    234   
        let _ = dbg!(result);
  235    235   
        let http_request = request_receiver.expect_request();
  236    236   
        let forbidden_headers = &["Content-Length", "Content-Type"];
  237    237   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(http_request.headers(), forbidden_headers));
  238    238   
        let body = http_request.body().bytes().expect("body should be strict");
  239    239   
        // No body.
  240    240   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
  241    241   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  242    242   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  243    243   
        ::pretty_assertions::assert_eq!(uri.path(), "/no_payload", "path was incorrect");
  244    244   
    }
  245    245   
  246    246   
    /// Serializes a GET request with header member but no modeled body
  247    247   
    /// Test ID: RestJsonHttpGetWithHeaderMemberNoModeledBody
  248    248   
    #[::tokio::test]
  249    249   
    #[::tracing_test::traced_test]
  250    250   
    async fn rest_json_http_get_with_header_member_no_modeled_body_request() {
  251         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         251  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  252    252   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  253    253   
  254    254   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  255    255   
        let result = client
  256    256   
            .test_get_no_payload()
  257    257   
            .set_test_id(::std::option::Option::Some("t-12345".to_owned()))
  258    258   
            .send()
  259    259   
            .await;
  260    260   
        let _ = dbg!(result);
  261    261   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_payload_blob.rs

@@ -203,203 +283,283 @@
  223    223   
  224    224   
#[allow(unreachable_code, unused_variables)]
  225    225   
#[cfg(test)]
  226    226   
mod test_payload_blob_test {
  227    227   
  228    228   
    /// Serializes a payload targeting an empty blob
  229    229   
    /// Test ID: RestJsonHttpWithEmptyBlobPayload
  230    230   
    #[::tokio::test]
  231    231   
    #[::tracing_test::traced_test]
  232    232   
    async fn rest_json_http_with_empty_blob_payload_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.test_payload_blob().send().await;
  238    238   
        let _ = dbg!(result);
  239    239   
        let http_request = request_receiver.expect_request();
  240    240   
        let body = http_request.body().bytes().expect("body should be strict");
  241    241   
        // No body.
  242    242   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
  243    243   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  244    244   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  245    245   
        ::pretty_assertions::assert_eq!(uri.path(), "/blob_payload", "path was incorrect");
  246    246   
    }
  247    247   
  248    248   
    /// Serializes a payload targeting a blob
  249    249   
    /// Test ID: RestJsonTestPayloadBlob
  250    250   
    #[::tokio::test]
  251    251   
    #[::tracing_test::traced_test]
  252    252   
    async fn rest_json_test_payload_blob_request() {
  253         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         253  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  254    254   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  255    255   
  256    256   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  257    257   
        let result = client
  258    258   
            .test_payload_blob()
  259    259   
            .set_content_type(::std::option::Option::Some("image/jpg".to_owned()))
  260    260   
            .set_data(::std::option::Option::Some(::aws_smithy_types::Blob::new("1234")))
  261    261   
            .send()
  262    262   
            .await;
  263    263   
        let _ = dbg!(result);

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_payload_structure.rs

@@ -211,211 +335,335 @@
  231    231   
  232    232   
#[allow(unreachable_code, unused_variables)]
  233    233   
#[cfg(test)]
  234    234   
mod test_payload_structure_test {
  235    235   
  236    236   
    /// Serializes a payload targeting an empty structure
  237    237   
    /// Test ID: RestJsonHttpWithEmptyStructurePayload
  238    238   
    #[::tokio::test]
  239    239   
    #[::tracing_test::traced_test]
  240    240   
    async fn rest_json_http_with_empty_structure_payload_request() {
  241         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         241  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  242    242   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  243    243   
  244    244   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  245    245   
        let result = client
  246    246   
            .test_payload_structure()
  247    247   
            .set_payload_config(::std::option::Option::Some(crate::types::PayloadConfig::builder().build()))
  248    248   
            .send()
  249    249   
            .await;
  250    250   
        let _ = dbg!(result);
  251    251   
        let http_request = request_receiver.expect_request();
  252    252   
        let expected_headers = [("Content-Type", "application/json")];
  253    253   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    254   
        let required_headers = &["Content-Length"];
  255    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  256    256   
        let body = http_request.body().bytes().expect("body should be strict");
  257    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  258    258   
            body,
  259    259   
            "{}",
  260    260   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  261    261   
        ));
  262    262   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  263    263   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  264    264   
        ::pretty_assertions::assert_eq!(uri.path(), "/payload", "path was incorrect");
  265    265   
    }
  266    266   
  267    267   
    /// Serializes a payload targeting a structure
  268    268   
    /// Test ID: RestJsonTestPayloadStructure
  269    269   
    #[::tokio::test]
  270    270   
    #[::tracing_test::traced_test]
  271    271   
    async fn rest_json_test_payload_structure_request() {
  272         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         272  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  273    273   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  274    274   
  275    275   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  276    276   
        let result = client
  277    277   
            .test_payload_structure()
  278    278   
            .set_payload_config(::std::option::Option::Some(
  279    279   
                crate::types::PayloadConfig::builder().set_data(::std::option::Option::Some(25)).build(),
  280    280   
            ))
  281    281   
            .send()
  282    282   
            .await;
  283    283   
        let _ = dbg!(result);
  284    284   
        let http_request = request_receiver.expect_request();
  285    285   
        let expected_headers = [("Content-Type", "application/json")];
  286    286   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  287    287   
        let required_headers = &["Content-Length"];
  288    288   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  289    289   
        let body = http_request.body().bytes().expect("body should be strict");
  290    290   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  291    291   
            body,
  292    292   
            "{\"data\": 25\n}",
  293    293   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  294    294   
        ));
  295    295   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  296    296   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  297    297   
        ::pretty_assertions::assert_eq!(uri.path(), "/payload", "path was incorrect");
  298    298   
    }
  299    299   
  300    300   
    /// Serializes an request with header members but no payload
  301    301   
    /// Test ID: RestJsonHttpWithHeadersButNoPayload
  302    302   
    #[::tokio::test]
  303    303   
    #[::tracing_test::traced_test]
  304    304   
    async fn rest_json_http_with_headers_but_no_payload_request() {
  305         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         305  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  306    306   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  307    307   
  308    308   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  309    309   
        let result = client
  310    310   
            .test_payload_structure()
  311    311   
            .set_test_id(::std::option::Option::Some("t-12345".to_owned()))
  312    312   
            .set_payload_config(::std::option::Option::Some(crate::types::PayloadConfig::builder().build()))
  313    313   
            .send()
  314    314   
            .await;
  315    315   
        let _ = dbg!(result);

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_post_no_input_no_payload.rs

@@ -204,204 +264,264 @@
  224    224   
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227    227   
mod test_post_no_input_no_payload_test {
  228    228   
  229    229   
    /// Serializes a POST request for an operation with no input, and therefore no modeled body
  230    230   
    /// Test ID: RestJsonHttpPostWithNoInput
  231    231   
    #[::tokio::test]
  232    232   
    #[::tracing_test::traced_test]
  233    233   
    async fn rest_json_http_post_with_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.test_post_no_input_no_payload().send().await;
  239    239   
        let _ = dbg!(result);
  240    240   
        let http_request = request_receiver.expect_request();
  241    241   
        let forbidden_headers = &["Content-Type"];
  242    242   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(http_request.headers(), forbidden_headers));
  243    243   
        let body = http_request.body().bytes().expect("body should be strict");
  244    244   
        // No body.

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/test_post_no_payload.rs

@@ -205,205 +287,287 @@
  225    225   
  226    226   
#[allow(unreachable_code, unused_variables)]
  227    227   
#[cfg(test)]
  228    228   
mod test_post_no_payload_test {
  229    229   
  230    230   
    /// Serializes a POST request with no modeled body
  231    231   
    /// Test ID: RestJsonHttpPostWithNoModeledBody
  232    232   
    #[::tokio::test]
  233    233   
    #[::tracing_test::traced_test]
  234    234   
    async fn rest_json_http_post_with_no_modeled_body_request() {
  235         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         235  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  236    236   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    237   
  238    238   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    239   
        let result = client.test_post_no_payload().send().await;
  240    240   
        let _ = dbg!(result);
  241    241   
        let http_request = request_receiver.expect_request();
  242    242   
        let forbidden_headers = &["Content-Type"];
  243    243   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(http_request.headers(), forbidden_headers));
  244    244   
        let body = http_request.body().bytes().expect("body should be strict");
  245    245   
        // No body.
  246    246   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
  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(), "/no_payload", "path was incorrect");
  250    250   
    }
  251    251   
  252    252   
    /// Serializes a POST request with header member but no modeled body
  253    253   
    /// Test ID: RestJsonHttpWithPostHeaderMemberNoModeledBody
  254    254   
    #[::tokio::test]
  255    255   
    #[::tracing_test::traced_test]
  256    256   
    async fn rest_json_http_with_post_header_member_no_modeled_body_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
  262    262   
            .test_post_no_payload()
  263    263   
            .set_test_id(::std::option::Option::Some("t-12345".to_owned()))
  264    264   
            .send()
  265    265   
            .await;
  266    266   
        let _ = dbg!(result);
  267    267   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/operation/timestamp_format_headers.rs

@@ -205,205 +265,265 @@
  225    225   
  226    226   
#[allow(unreachable_code, unused_variables)]
  227    227   
#[cfg(test)]
  228    228   
mod timestamp_format_headers_test {
  229    229   
  230    230   
    /// Tests how timestamp request headers are serialized
  231    231   
    /// Test ID: RestJsonTimestampFormatHeaders
  232    232   
    #[::tokio::test]
  233    233   
    #[::tracing_test::traced_test]
  234    234   
    async fn rest_json_timestamp_format_headers_request() {
  235         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         235  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  236    236   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    237   
  238    238   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    239   
        let result = client
  240    240   
            .timestamp_format_headers()
  241    241   
            .set_member_epoch_seconds(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  242    242   
                1576540098, 0_f64,
  243    243   
            )))
  244    244   
            .set_member_http_date(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  245    245   
                1576540098, 0_f64,