Client Test

Client Test

rev. ce76c569583a3fdee1e9d39e082a8d5efd7b13b7 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/flattened_xml_map_with_xml_namespace.rs

@@ -197,197 +261,262 @@
  217    217   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  218    218   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  219    219   
        })?;
  220    220   
        cfg.interceptor_state()
  221    221   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  222    222   
        ::std::result::Result::Ok(())
  223    223   
    }
  224    224   
}
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227         -
mod flattened_xml_map_with_xml_namespace_request_test {
         227  +
mod flattened_xml_map_with_xml_namespace_test {
         228  +
  228    229   
    /// Serializes flattened XML maps in responses that have xmlNamespace and xmlName on members
  229    230   
    /// Test ID: RestXmlFlattenedXmlMapWithXmlNamespace
  230    231   
    #[::tokio::test]
  231         -
    #[allow(unused_mut)]
         232  +
    #[::tracing_test::traced_test]
  232    233   
    async fn rest_xml_flattened_xml_map_with_xml_namespace_response() {
  233    234   
        let expected_output = crate::operation::flattened_xml_map_with_xml_namespace::FlattenedXmlMapWithXmlNamespaceOutput::builder()
  234    235   
            .set_my_map(::std::option::Option::Some({
  235    236   
                let mut ret = ::std::collections::HashMap::new();
  236    237   
                ret.insert("a".to_owned(), "A".to_owned());
  237    238   
                ret.insert("b".to_owned(), "B".to_owned());
  238    239   
                ret
  239    240   
            }))
  240    241   
            .build();
  241    242   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(::http::response::Builder::new()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/fractional_seconds.rs

@@ -187,187 +251,252 @@
  207    207   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  208    208   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  209    209   
        })?;
  210    210   
        cfg.interceptor_state()
  211    211   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  212    212   
        ::std::result::Result::Ok(())
  213    213   
    }
  214    214   
}
  215    215   
#[allow(unreachable_code, unused_variables)]
  216    216   
#[cfg(test)]
  217         -
mod fractional_seconds_request_test {
         217  +
mod fractional_seconds_test {
         218  +
  218    219   
    /// Ensures that clients can correctly parse datetime timestamps with fractional seconds
  219    220   
    /// Test ID: RestXmlDateTimeWithFractionalSeconds
  220    221   
    #[::tokio::test]
  221         -
    #[allow(unused_mut)]
         222  +
    #[::tracing_test::traced_test]
  222    223   
    async fn rest_xml_date_time_with_fractional_seconds_response() {
  223    224   
        let expected_output = crate::operation::fractional_seconds::FractionalSecondsOutput::builder()
  224    225   
            .set_datetime(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  225    226   
                946845296, 0.123_f64,
  226    227   
            )))
  227    228   
            .build();
  228    229   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  229    230   
            ::http::response::Builder::new()
  230    231   
                .header("Content-Type", "application/xml")
  231    232   
                .status(200)

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/greeting_with_errors.rs

@@ -193,193 +331,332 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod greeting_with_errors_request_test {
         223  +
mod greeting_with_errors_test {
         224  +
  224    225   
    /// Ensures that operations with errors successfully know how to deserialize the successful response
  225    226   
    /// Test ID: GreetingWithErrors
  226    227   
    #[::tokio::test]
  227         -
    #[allow(unused_mut)]
         228  +
    #[::tracing_test::traced_test]
  228    229   
    async fn greeting_with_errors_response() {
  229    230   
        let expected_output = crate::operation::greeting_with_errors::GreetingWithErrorsOutput::builder()
  230    231   
            .set_greeting(::std::option::Option::Some("Hello".to_owned()))
  231    232   
            .build();
  232    233   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  233    234   
            ::http::response::Builder::new()
  234    235   
                .header("X-Greeting", "Hello")
  235    236   
                .status(200)
  236    237   
                .body(::aws_smithy_types::body::SdkBody::from(""))
  237    238   
                .unwrap(),
  238    239   
        )
  239    240   
        .unwrap();
  240    241   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  241    242   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  242    243   
  243    244   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  244    245   
        let config = op.config().expect("the operation has config");
  245    246   
        let de = config
  246    247   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  247    248   
            .expect("the config must have a deserializer");
  248    249   
  249    250   
        let parsed = de.deserialize_streaming(&mut http_response);
  250    251   
        let parsed = parsed.unwrap_or_else(|| {
  251    252   
            let http_response =
  252    253   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  253    254   
            de.deserialize_nonstreaming(&http_response)
  254    255   
        });
  255    256   
        let parsed = parsed
  256    257   
            .expect("should be successful response")
  257    258   
            .downcast::<crate::operation::greeting_with_errors::GreetingWithErrorsOutput>()
  258    259   
            .unwrap();
  259    260   
        ::pretty_assertions::assert_eq!(parsed.greeting, expected_output.greeting, "Unexpected value for `greeting`");
  260    261   
    }
  261    262   
    /// Parses simple XML errors
  262    263   
    /// Test ID: InvalidGreetingError
  263    264   
    #[::tokio::test]
  264         -
    #[allow(unused_mut)]
         265  +
    #[::tracing_test::traced_test]
  265    266   
    async fn invalid_greeting_error_response() {
  266    267   
        let expected_output = crate::types::error::InvalidGreeting::builder()
  267    268   
            .set_message(::std::option::Option::Some("Hi".to_owned()))
  268    269   
            .build();
  269    270   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(::http::response::Builder::new()
  270    271   
        .header("Content-Type", "application/xml")
  271    272   
        .status(400)
  272    273   
                    .body(::aws_smithy_types::body::SdkBody::from("<ErrorResponse>\n   <Error>\n      <Type>Sender</Type>\n      <Code>InvalidGreeting</Code>\n      <Message>Hi</Message>\n      <AnotherSetting>setting</AnotherSetting>\n   </Error>\n   <RequestId>foo-id</RequestId>\n</ErrorResponse>\n"))
  273    274   
                    .unwrap()
  274    275   
                    ).unwrap();
  275    276   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  276    277   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  277    278   
  278    279   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  279    280   
        let config = op.config().expect("the operation has config");
  280    281   
        let de = config
  281    282   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  282    283   
            .expect("the config must have a deserializer");
  283    284   
  284    285   
        let parsed = de.deserialize_streaming(&mut http_response);
  285    286   
        let parsed = parsed.unwrap_or_else(|| {
  286    287   
            let http_response =
  287    288   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  288    289   
            de.deserialize_nonstreaming(&http_response)
  289    290   
        });
  290    291   
        let parsed = parsed.expect_err("should be error response");
  291    292   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  292    293   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  293    294   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::InvalidGreeting(parsed) = parsed {
  294    295   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  295    296   
        } else {
  296    297   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  297    298   
        }
  298    299   
    }
  299    300   
    /// Test ID: ComplexError
  300    301   
    #[::tokio::test]
  301         -
    #[allow(unused_mut)]
         302  +
    #[::tracing_test::traced_test]
  302    303   
    async fn complex_error_response() {
  303    304   
        let expected_output = crate::types::error::ComplexError::builder()
  304    305   
            .set_header(::std::option::Option::Some("Header".to_owned()))
  305    306   
            .set_top_level(::std::option::Option::Some("Top level".to_owned()))
  306    307   
            .set_nested(::std::option::Option::Some(
  307    308   
                crate::types::ComplexNestedErrorData::builder()
  308    309   
                    .set_foo(::std::option::Option::Some("bar".to_owned()))
  309    310   
                    .build(),
  310    311   
            ))
  311    312   
            .build();

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_enum_payload.rs

@@ -193,193 +283,284 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod http_enum_payload_request_test {
         223  +
mod http_enum_payload_test {
         224  +
  224    225   
    /// Test ID: RestXmlEnumPayloadRequest
  225    226   
    #[::tokio::test]
  226         -
    #[allow(unused_mut)]
         227  +
    #[::tracing_test::traced_test]
  227    228   
    async fn rest_xml_enum_payload_request_request() {
  228    229   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  229    230   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  230    231   
  231    232   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  232    233   
        let result = client
  233    234   
            .http_enum_payload()
  234    235   
            .set_payload(::std::option::Option::Some(
  235    236   
                "enumvalue".parse::<crate::types::StringEnum>().expect("static value validated to member"),
  236    237   
            ))
  237    238   
            .send()
  238    239   
            .await;
  239    240   
        let _ = dbg!(result);
  240    241   
        let http_request = request_receiver.expect_request();
  241    242   
        let body = http_request.body().bytes().expect("body should be strict");
  242    243   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  243    244   
            body,
  244    245   
            "enumvalue",
  245    246   
            ::aws_smithy_protocol_test::MediaType::from("unknown"),
  246    247   
        ));
  247    248   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  248    249   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  249    250   
        ::pretty_assertions::assert_eq!(uri.path(), "/EnumPayload", "path was incorrect");
  250    251   
    }
  251    252   
    /// Test ID: RestXmlEnumPayloadResponse
  252    253   
    #[::tokio::test]
  253         -
    #[allow(unused_mut)]
         254  +
    #[::tracing_test::traced_test]
  254    255   
    async fn rest_xml_enum_payload_response_response() {
  255    256   
        let expected_output = crate::operation::http_enum_payload::HttpEnumPayloadOutput::builder()
  256    257   
            .set_payload(::std::option::Option::Some(
  257    258   
                "enumvalue".parse::<crate::types::StringEnum>().expect("static value validated to member"),
  258    259   
            ))
  259    260   
            .build();
  260    261   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  261    262   
            ::http::response::Builder::new()
  262    263   
                .status(200)
  263    264   
                .body(::aws_smithy_types::body::SdkBody::from("enumvalue"))

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_traits.rs

@@ -193,193 +352,353 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod http_payload_traits_request_test {
         223  +
mod http_payload_traits_test {
         224  +
  224    225   
    /// Serializes a blob in the HTTP payload
  225    226   
    /// Test ID: HttpPayloadTraitsWithBlob
  226    227   
    #[::tokio::test]
  227         -
    #[allow(unused_mut)]
         228  +
    #[::tracing_test::traced_test]
  228    229   
    async fn http_payload_traits_with_blob_request() {
  229    230   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  230    231   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  231    232   
  232    233   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  233    234   
        let result = client
  234    235   
            .http_payload_traits()
  235    236   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  236    237   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("blobby blob blob")))
  237    238   
            .send()
  238    239   
            .await;
  239    240   
        let _ = dbg!(result);
  240    241   
        let http_request = request_receiver.expect_request();
  241    242   
        let expected_headers = [("X-Foo", "Foo")];
  242    243   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  243    244   
        let required_headers = &["Content-Length"];
  244    245   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  245    246   
        let body = http_request.body().bytes().expect("body should be strict");
  246    247   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  247    248   
            body,
  248    249   
            "blobby blob blob",
  249    250   
            ::aws_smithy_protocol_test::MediaType::from("unknown"),
  250    251   
        ));
  251    252   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  252    253   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  253    254   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadTraits", "path was incorrect");
  254    255   
    }
  255    256   
    /// Serializes an empty blob in the HTTP payload
  256    257   
    /// Test ID: HttpPayloadTraitsWithNoBlobBody
  257    258   
    #[::tokio::test]
  258         -
    #[allow(unused_mut)]
         259  +
    #[::tracing_test::traced_test]
  259    260   
    async fn http_payload_traits_with_no_blob_body_request() {
  260    261   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  261    262   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  262    263   
  263    264   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  264    265   
        let result = client
  265    266   
            .http_payload_traits()
  266    267   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  267    268   
            .send()
  268    269   
            .await;
  269    270   
        let _ = dbg!(result);
  270    271   
        let http_request = request_receiver.expect_request();
  271    272   
        let expected_headers = [("X-Foo", "Foo")];
  272    273   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  273    274   
        let body = http_request.body().bytes().expect("body should be strict");
  274    275   
        // No body
  275    276   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  276    277   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  277    278   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  278    279   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadTraits", "path was incorrect");
  279    280   
    }
  280    281   
    /// Serializes a blob in the HTTP payload
  281    282   
    /// Test ID: HttpPayloadTraitsWithBlob
  282    283   
    #[::tokio::test]
  283         -
    #[allow(unused_mut)]
         284  +
    #[::tracing_test::traced_test]
  284    285   
    async fn http_payload_traits_with_blob_response() {
  285    286   
        let expected_output = crate::operation::http_payload_traits::HttpPayloadTraitsOutput::builder()
  286    287   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  287    288   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("blobby blob blob")))
  288    289   
            .build();
  289    290   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  290    291   
            ::http::response::Builder::new()
  291    292   
                .header("X-Foo", "Foo")
  292    293   
                .status(200)
  293    294   
                .body(::aws_smithy_types::body::SdkBody::from("blobby blob blob"))
  294    295   
                .unwrap(),
  295    296   
        )
  296    297   
        .unwrap();
  297    298   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  298    299   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  299    300   
  300    301   
        let op = crate::operation::http_payload_traits::HttpPayloadTraits::new();
  301    302   
        let config = op.config().expect("the operation has config");
  302    303   
        let de = config
  303    304   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  304    305   
            .expect("the config must have a deserializer");
  305    306   
  306    307   
        let parsed = de.deserialize_streaming(&mut http_response);
  307    308   
        let parsed = parsed.unwrap_or_else(|| {
  308    309   
            let http_response =
  309    310   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  310    311   
            de.deserialize_nonstreaming(&http_response)
  311    312   
        });
  312    313   
        let parsed = parsed
  313    314   
            .expect("should be successful response")
  314    315   
            .downcast::<crate::operation::http_payload_traits::HttpPayloadTraitsOutput>()
  315    316   
            .unwrap();
  316    317   
        ::pretty_assertions::assert_eq!(parsed.foo, expected_output.foo, "Unexpected value for `foo`");
  317    318   
        ::pretty_assertions::assert_eq!(parsed.blob, expected_output.blob, "Unexpected value for `blob`");
  318    319   
    }
  319    320   
    /// Serializes an empty blob in the HTTP payload
  320    321   
    /// Test ID: HttpPayloadTraitsWithNoBlobBody
  321    322   
    #[::tokio::test]
  322         -
    #[allow(unused_mut)]
         323  +
    #[::tracing_test::traced_test]
  323    324   
    async fn http_payload_traits_with_no_blob_body_response() {
  324    325   
        let expected_output = crate::operation::http_payload_traits::HttpPayloadTraitsOutput::builder()
  325    326   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  326    327   
            .build();
  327    328   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  328    329   
            ::http::response::Builder::new()
  329    330   
                .header("X-Foo", "Foo")
  330    331   
                .status(200)
  331    332   
                .body(::aws_smithy_types::body::SdkBody::from(""))
  332    333   
                .unwrap(),

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_traits_with_media_type.rs

@@ -204,204 +299,300 @@
  224    224   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  225    225   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  226    226   
        })?;
  227    227   
        cfg.interceptor_state()
  228    228   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  229    229   
        ::std::result::Result::Ok(())
  230    230   
    }
  231    231   
}
  232    232   
#[allow(unreachable_code, unused_variables)]
  233    233   
#[cfg(test)]
  234         -
mod http_payload_traits_with_media_type_request_test {
         234  +
mod http_payload_traits_with_media_type_test {
         235  +
  235    236   
    /// Serializes a blob in the HTTP payload with a content-type
  236    237   
    /// Test ID: HttpPayloadTraitsWithMediaTypeWithBlob
  237    238   
    #[::tokio::test]
  238         -
    #[allow(unused_mut)]
         239  +
    #[::tracing_test::traced_test]
  239    240   
    async fn http_payload_traits_with_media_type_with_blob_request() {
  240    241   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  241    242   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  242    243   
  243    244   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  244    245   
        let result = client
  245    246   
            .http_payload_traits_with_media_type()
  246    247   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  247    248   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("blobby blob blob")))
  248    249   
            .send()
  249    250   
            .await;
  250    251   
        let _ = dbg!(result);
  251    252   
        let http_request = request_receiver.expect_request();
  252    253   
        let expected_headers = [("Content-Type", "text/plain"), ("X-Foo", "Foo")];
  253    254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    255   
        let required_headers = &["Content-Length"];
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  256    257   
        let body = http_request.body().bytes().expect("body should be strict");
  257    258   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  258    259   
            body,
  259    260   
            "blobby blob blob",
  260    261   
            ::aws_smithy_protocol_test::MediaType::from("unknown"),
  261    262   
        ));
  262    263   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  263    264   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  264    265   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadTraitsWithMediaType", "path was incorrect");
  265    266   
    }
  266    267   
    /// Serializes a blob in the HTTP payload with a content-type
  267    268   
    /// Test ID: HttpPayloadTraitsWithMediaTypeWithBlob
  268    269   
    #[::tokio::test]
  269         -
    #[allow(unused_mut)]
         270  +
    #[::tracing_test::traced_test]
  270    271   
    async fn http_payload_traits_with_media_type_with_blob_response() {
  271    272   
        let expected_output = crate::operation::http_payload_traits_with_media_type::HttpPayloadTraitsWithMediaTypeOutput::builder()
  272    273   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  273    274   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("blobby blob blob")))
  274    275   
            .build();
  275    276   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  276    277   
            ::http::response::Builder::new()
  277    278   
                .header("Content-Type", "text/plain")
  278    279   
                .header("X-Foo", "Foo")
  279    280   
                .status(200)

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_member_xml_name.rs

@@ -199,199 +297,298 @@
  219    219   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  220    220   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  221    221   
        })?;
  222    222   
        cfg.interceptor_state()
  223    223   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  224    224   
        ::std::result::Result::Ok(())
  225    225   
    }
  226    226   
}
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229         -
mod http_payload_with_member_xml_name_request_test {
         229  +
mod http_payload_with_member_xml_name_test {
         230  +
  230    231   
    /// Serializes a structure in the payload using a wrapper name based on member xmlName
  231    232   
    /// Test ID: HttpPayloadWithMemberXmlName
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn http_payload_with_member_xml_name_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .http_payload_with_member_xml_name()
  241    242   
            .set_nested(::std::option::Option::Some(
  242    243   
                crate::types::PayloadWithXmlName::builder()
  243    244   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  244    245   
                    .build(),
  245    246   
            ))
  246    247   
            .send()
  247    248   
            .await;
  248    249   
        let _ = dbg!(result);
  249    250   
        let http_request = request_receiver.expect_request();
  250    251   
        let expected_headers = [("Content-Type", "application/xml")];
  251    252   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  252    253   
        let required_headers = &["Content-Length"];
  253    254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  254    255   
        let body = http_request.body().bytes().expect("body should be strict");
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  256    257   
            body,
  257    258   
            "<Hola><name>Phreddy</name></Hola>",
  258    259   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  259    260   
        ));
  260    261   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  261    262   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  262    263   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithMemberXmlName", "path was incorrect");
  263    264   
    }
  264    265   
    /// Serializes a structure in the payload using a wrapper name based on member xmlName
  265    266   
    /// Test ID: HttpPayloadWithMemberXmlName
  266    267   
    #[::tokio::test]
  267         -
    #[allow(unused_mut)]
         268  +
    #[::tracing_test::traced_test]
  268    269   
    async fn http_payload_with_member_xml_name_response() {
  269    270   
        let expected_output = crate::operation::http_payload_with_member_xml_name::HttpPayloadWithMemberXmlNameOutput::builder()
  270    271   
            .set_nested(::std::option::Option::Some(
  271    272   
                crate::types::PayloadWithXmlName::builder()
  272    273   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  273    274   
                    .build(),
  274    275   
            ))
  275    276   
            .build();
  276    277   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  277    278   
            ::http::response::Builder::new()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_structure.rs

@@ -199,199 +298,299 @@
  219    219   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  220    220   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  221    221   
        })?;
  222    222   
        cfg.interceptor_state()
  223    223   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  224    224   
        ::std::result::Result::Ok(())
  225    225   
    }
  226    226   
}
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229         -
mod http_payload_with_structure_request_test {
         229  +
mod http_payload_with_structure_test {
         230  +
  230    231   
    /// Serializes a structure in the payload
  231    232   
    /// Test ID: HttpPayloadWithStructure
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn http_payload_with_structure_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .http_payload_with_structure()
  241    242   
            .set_nested(::std::option::Option::Some(
  242    243   
                crate::types::NestedPayload::builder()
  243    244   
                    .set_greeting(::std::option::Option::Some("hello".to_owned()))
  244    245   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  245    246   
                    .build(),
  246    247   
            ))
  247    248   
            .send()
  248    249   
            .await;
  249    250   
        let _ = dbg!(result);
  250    251   
        let http_request = request_receiver.expect_request();
  251    252   
        let expected_headers = [("Content-Type", "application/xml")];
  252    253   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  253    254   
        let required_headers = &["Content-Length"];
  254    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  255    256   
        let body = http_request.body().bytes().expect("body should be strict");
  256    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  257    258   
            body,
  258    259   
            "<NestedPayload>\n    <greeting>hello</greeting>\n    <name>Phreddy</name>\n</NestedPayload>\n",
  259    260   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  260    261   
        ));
  261    262   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  262    263   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  263    264   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithStructure", "path was incorrect");
  264    265   
    }
  265    266   
    /// Serializes a structure in the payload
  266    267   
    /// Test ID: HttpPayloadWithStructure
  267    268   
    #[::tokio::test]
  268         -
    #[allow(unused_mut)]
         269  +
    #[::tracing_test::traced_test]
  269    270   
    async fn http_payload_with_structure_response() {
  270    271   
        let expected_output = crate::operation::http_payload_with_structure::HttpPayloadWithStructureOutput::builder()
  271    272   
            .set_nested(::std::option::Option::Some(
  272    273   
                crate::types::NestedPayload::builder()
  273    274   
                    .set_greeting(::std::option::Option::Some("hello".to_owned()))
  274    275   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  275    276   
                    .build(),
  276    277   
            ))
  277    278   
            .build();
  278    279   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_union.rs

@@ -199,199 +351,352 @@
  219    219   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  220    220   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  221    221   
        })?;
  222    222   
        cfg.interceptor_state()
  223    223   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  224    224   
        ::std::result::Result::Ok(())
  225    225   
    }
  226    226   
}
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229         -
mod http_payload_with_union_request_test {
         229  +
mod http_payload_with_union_test {
         230  +
  230    231   
    /// Serializes a union in the payload.
  231    232   
    /// Test ID: RestXmlHttpPayloadWithUnion
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn rest_xml_http_payload_with_union_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .http_payload_with_union()
  241    242   
            .set_nested(::std::option::Option::Some(crate::types::UnionPayload::Greeting("hello".to_owned())))
  242    243   
            .send()
  243    244   
            .await;
  244    245   
        let _ = dbg!(result);
  245    246   
        let http_request = request_receiver.expect_request();
  246    247   
        let expected_headers = [("Content-Type", "application/xml")];
  247    248   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  248    249   
        let required_headers = &["Content-Length"];
  249    250   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  250    251   
        let body = http_request.body().bytes().expect("body should be strict");
  251    252   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  252    253   
            body,
  253    254   
            "<UnionPayload>\n    <greeting>hello</greeting>\n</UnionPayload>",
  254    255   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  255    256   
        ));
  256    257   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  257    258   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  258    259   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithUnion", "path was incorrect");
  259    260   
    }
  260    261   
    /// No payload is sent if the union has no value.
  261    262   
    /// Test ID: RestXmlHttpPayloadWithUnsetUnion
  262    263   
    #[::tokio::test]
  263         -
    #[allow(unused_mut)]
         264  +
    #[::tracing_test::traced_test]
  264    265   
    async fn rest_xml_http_payload_with_unset_union_request() {
  265    266   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  266    267   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  267    268   
  268    269   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  269    270   
        let result = client.http_payload_with_union().send().await;
  270    271   
        let _ = dbg!(result);
  271    272   
        let http_request = request_receiver.expect_request();
  272    273   
        let body = http_request.body().bytes().expect("body should be strict");
  273    274   
        // No body
  274    275   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  275    276   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  276    277   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  277    278   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithUnion", "path was incorrect");
  278    279   
    }
  279    280   
    /// Serializes a union in the payload.
  280    281   
    /// Test ID: RestXmlHttpPayloadWithUnion
  281    282   
    #[::tokio::test]
  282         -
    #[allow(unused_mut)]
         283  +
    #[::tracing_test::traced_test]
  283    284   
    async fn rest_xml_http_payload_with_union_response() {
  284    285   
        let expected_output = crate::operation::http_payload_with_union::HttpPayloadWithUnionOutput::builder()
  285    286   
            .set_nested(::std::option::Option::Some(crate::types::UnionPayload::Greeting("hello".to_owned())))
  286    287   
            .build();
  287    288   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  288    289   
            ::http::response::Builder::new()
  289    290   
                .header("Content-Type", "application/xml")
  290    291   
                .status(200)
  291    292   
                .body(::aws_smithy_types::body::SdkBody::from(
  292    293   
                    "<UnionPayload>\n    <greeting>hello</greeting>\n</UnionPayload>",
  293    294   
                ))
  294    295   
                .unwrap(),
  295    296   
        )
  296    297   
        .unwrap();
  297    298   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  298    299   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  299    300   
  300    301   
        let op = crate::operation::http_payload_with_union::HttpPayloadWithUnion::new();
  301    302   
        let config = op.config().expect("the operation has config");
  302    303   
        let de = config
  303    304   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  304    305   
            .expect("the config must have a deserializer");
  305    306   
  306    307   
        let parsed = de.deserialize_streaming(&mut http_response);
  307    308   
        let parsed = parsed.unwrap_or_else(|| {
  308    309   
            let http_response =
  309    310   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  310    311   
            de.deserialize_nonstreaming(&http_response)
  311    312   
        });
  312    313   
        let parsed = parsed
  313    314   
            .expect("should be successful response")
  314    315   
            .downcast::<crate::operation::http_payload_with_union::HttpPayloadWithUnionOutput>()
  315    316   
            .unwrap();
  316    317   
        ::pretty_assertions::assert_eq!(parsed.nested, expected_output.nested, "Unexpected value for `nested`");
  317    318   
    }
  318    319   
    /// No payload is sent if the union has no value.
  319    320   
    /// Test ID: RestXmlHttpPayloadWithUnsetUnion
  320    321   
    #[::tokio::test]
  321         -
    #[allow(unused_mut)]
         322  +
    #[::tracing_test::traced_test]
  322    323   
    async fn rest_xml_http_payload_with_unset_union_response() {
  323    324   
        let expected_output = crate::operation::http_payload_with_union::HttpPayloadWithUnionOutput::builder().build();
  324    325   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  325    326   
            ::http::response::Builder::new()
  326    327   
                .header("Content-Length", "0")
  327    328   
                .status(200)
  328    329   
                .body(::aws_smithy_types::body::SdkBody::from(""))
  329    330   
                .unwrap(),
  330    331   
        )
  331    332   
        .unwrap();

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_xml_name.rs

@@ -199,199 +297,298 @@
  219    219   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  220    220   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  221    221   
        })?;
  222    222   
        cfg.interceptor_state()
  223    223   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  224    224   
        ::std::result::Result::Ok(())
  225    225   
    }
  226    226   
}
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229         -
mod http_payload_with_xml_name_request_test {
         229  +
mod http_payload_with_xml_name_test {
         230  +
  230    231   
    /// Serializes a structure in the payload using a wrapper name based on xmlName
  231    232   
    /// Test ID: HttpPayloadWithXmlName
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn http_payload_with_xml_name_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .http_payload_with_xml_name()
  241    242   
            .set_nested(::std::option::Option::Some(
  242    243   
                crate::types::PayloadWithXmlName::builder()
  243    244   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  244    245   
                    .build(),
  245    246   
            ))
  246    247   
            .send()
  247    248   
            .await;
  248    249   
        let _ = dbg!(result);
  249    250   
        let http_request = request_receiver.expect_request();
  250    251   
        let expected_headers = [("Content-Type", "application/xml")];
  251    252   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  252    253   
        let required_headers = &["Content-Length"];
  253    254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  254    255   
        let body = http_request.body().bytes().expect("body should be strict");
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  256    257   
            body,
  257    258   
            "<Hello><name>Phreddy</name></Hello>",
  258    259   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  259    260   
        ));
  260    261   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  261    262   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  262    263   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithXmlName", "path was incorrect");
  263    264   
    }
  264    265   
    /// Serializes a structure in the payload using a wrapper name based on xmlName
  265    266   
    /// Test ID: HttpPayloadWithXmlName
  266    267   
    #[::tokio::test]
  267         -
    #[allow(unused_mut)]
         268  +
    #[::tracing_test::traced_test]
  268    269   
    async fn http_payload_with_xml_name_response() {
  269    270   
        let expected_output = crate::operation::http_payload_with_xml_name::HttpPayloadWithXmlNameOutput::builder()
  270    271   
            .set_nested(::std::option::Option::Some(
  271    272   
                crate::types::PayloadWithXmlName::builder()
  272    273   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  273    274   
                    .build(),
  274    275   
            ))
  275    276   
            .build();
  276    277   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  277    278   
            ::http::response::Builder::new()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_xml_namespace.rs

@@ -199,199 +297,298 @@
  219    219   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  220    220   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  221    221   
        })?;
  222    222   
        cfg.interceptor_state()
  223    223   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  224    224   
        ::std::result::Result::Ok(())
  225    225   
    }
  226    226   
}
  227    227   
#[allow(unreachable_code, unused_variables)]
  228    228   
#[cfg(test)]
  229         -
mod http_payload_with_xml_namespace_request_test {
         229  +
mod http_payload_with_xml_namespace_test {
         230  +
  230    231   
    /// Serializes a structure in the payload using a wrapper with an XML namespace
  231    232   
    /// Test ID: HttpPayloadWithXmlNamespace
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn http_payload_with_xml_namespace_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .http_payload_with_xml_namespace()
  241    242   
            .set_nested(::std::option::Option::Some(
  242    243   
                crate::types::PayloadWithXmlNamespace::builder()
  243    244   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  244    245   
                    .build(),
  245    246   
            ))
  246    247   
            .send()
  247    248   
            .await;
  248    249   
        let _ = dbg!(result);
  249    250   
        let http_request = request_receiver.expect_request();
  250    251   
        let expected_headers = [("Content-Type", "application/xml")];
  251    252   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  252    253   
        let required_headers = &["Content-Length"];
  253    254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  254    255   
        let body = http_request.body().bytes().expect("body should be strict");
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  256    257   
            body,
  257    258   
            "<PayloadWithXmlNamespace xmlns=\"http://foo.com\">\n    <name>Phreddy</name>\n</PayloadWithXmlNamespace>",
  258    259   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  259    260   
        ));
  260    261   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  261    262   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  262    263   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithXmlNamespace", "path was incorrect");
  263    264   
    }
  264    265   
    /// Serializes a structure in the payload using a wrapper with an XML namespace
  265    266   
    /// Test ID: HttpPayloadWithXmlNamespace
  266    267   
    #[::tokio::test]
  267         -
    #[allow(unused_mut)]
         268  +
    #[::tracing_test::traced_test]
  268    269   
    async fn http_payload_with_xml_namespace_response() {
  269    270   
        let expected_output = crate::operation::http_payload_with_xml_namespace::HttpPayloadWithXmlNamespaceOutput::builder()
  270    271   
            .set_nested(::std::option::Option::Some(
  271    272   
                crate::types::PayloadWithXmlNamespace::builder()
  272    273   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  273    274   
                    .build(),
  274    275   
            ))
  275    276   
            .build();
  276    277   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  277    278   
            ::http::response::Builder::new()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_payload_with_xml_namespace_and_prefix.rs

@@ -203,203 +301,302 @@
  223    223   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  224    224   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  225    225   
        })?;
  226    226   
        cfg.interceptor_state()
  227    227   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  228    228   
        ::std::result::Result::Ok(())
  229    229   
    }
  230    230   
}
  231    231   
#[allow(unreachable_code, unused_variables)]
  232    232   
#[cfg(test)]
  233         -
mod http_payload_with_xml_namespace_and_prefix_request_test {
         233  +
mod http_payload_with_xml_namespace_and_prefix_test {
         234  +
  234    235   
    /// Serializes a structure in the payload using a wrapper with an XML namespace
  235    236   
    /// Test ID: HttpPayloadWithXmlNamespaceAndPrefix
  236    237   
    #[::tokio::test]
  237         -
    #[allow(unused_mut)]
         238  +
    #[::tracing_test::traced_test]
  238    239   
    async fn http_payload_with_xml_namespace_and_prefix_request() {
  239    240   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  240    241   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  241    242   
  242    243   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  243    244   
        let result = client
  244    245   
            .http_payload_with_xml_namespace_and_prefix()
  245    246   
            .set_nested(::std::option::Option::Some(
  246    247   
                crate::types::PayloadWithXmlNamespaceAndPrefix::builder()
  247    248   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  248    249   
                    .build(),
  249    250   
            ))
  250    251   
            .send()
  251    252   
            .await;
  252    253   
        let _ = dbg!(result);
  253    254   
        let http_request = request_receiver.expect_request();
  254    255   
        let expected_headers = [("Content-Type", "application/xml")];
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  256    257   
        let required_headers = &["Content-Length"];
  257    258   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  258    259   
        let body = http_request.body().bytes().expect("body should be strict");
  259    260   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  260    261   
            body,
  261    262   
            "<PayloadWithXmlNamespaceAndPrefix xmlns:baz=\"http://foo.com\">\n    <name>Phreddy</name>\n</PayloadWithXmlNamespaceAndPrefix>",
  262    263   
            ::aws_smithy_protocol_test::MediaType::from("application/xml"),
  263    264   
        ));
  264    265   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  265    266   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  266    267   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPayloadWithXmlNamespaceAndPrefix", "path was incorrect");
  267    268   
    }
  268    269   
    /// Serializes a structure in the payload using a wrapper with an XML namespace
  269    270   
    /// Test ID: HttpPayloadWithXmlNamespaceAndPrefix
  270    271   
    #[::tokio::test]
  271         -
    #[allow(unused_mut)]
         272  +
    #[::tracing_test::traced_test]
  272    273   
    async fn http_payload_with_xml_namespace_and_prefix_response() {
  273    274   
        let expected_output = crate::operation::http_payload_with_xml_namespace_and_prefix::HttpPayloadWithXmlNamespaceAndPrefixOutput::builder()
  274    275   
            .set_nested(::std::option::Option::Some(
  275    276   
                crate::types::PayloadWithXmlNamespaceAndPrefix::builder()
  276    277   
                    .set_name(::std::option::Option::Some("Phreddy".to_owned()))
  277    278   
                    .build(),
  278    279   
            ))
  279    280   
            .build();
  280    281   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  281    282   
            ::http::response::Builder::new()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_prefix_headers.rs

@@ -188,188 +355,356 @@
  208    208   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  209    209   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  210    210   
        })?;
  211    211   
        cfg.interceptor_state()
  212    212   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  213    213   
        ::std::result::Result::Ok(())
  214    214   
    }
  215    215   
}
  216    216   
#[allow(unreachable_code, unused_variables)]
  217    217   
#[cfg(test)]
  218         -
mod http_prefix_headers_request_test {
         218  +
mod http_prefix_headers_test {
         219  +
  219    220   
    /// Adds headers by prefix
  220    221   
    /// Test ID: HttpPrefixHeadersArePresent
  221    222   
    #[::tokio::test]
  222         -
    #[allow(unused_mut)]
         223  +
    #[::tracing_test::traced_test]
  223    224   
    async fn http_prefix_headers_are_present_request() {
  224    225   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  225    226   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  226    227   
  227    228   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  228    229   
        let result = client
  229    230   
            .http_prefix_headers()
  230    231   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  231    232   
            .set_foo_map(::std::option::Option::Some({
  232    233   
                let mut ret = ::std::collections::HashMap::new();
  233    234   
                ret.insert("Abc".to_owned().to_ascii_lowercase(), "Abc value".to_owned());
  234    235   
                ret.insert("Def".to_owned().to_ascii_lowercase(), "Def value".to_owned());
  235    236   
                ret
  236    237   
            }))
  237    238   
            .send()
  238    239   
            .await;
  239    240   
        let _ = dbg!(result);
  240    241   
        let http_request = request_receiver.expect_request();
  241    242   
        let expected_headers = [("X-Foo", "Foo"), ("X-Foo-Abc", "Abc value"), ("X-Foo-Def", "Def value")];
  242    243   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  243    244   
        let body = http_request.body().bytes().expect("body should be strict");
  244    245   
        // No body
  245    246   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  246    247   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  247    248   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  248    249   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPrefixHeaders", "path was incorrect");
  249    250   
    }
  250    251   
    /// No prefix headers are serialized because the value is empty
  251    252   
    /// Test ID: HttpPrefixHeadersAreNotPresent
  252    253   
    #[::tokio::test]
  253         -
    #[allow(unused_mut)]
         254  +
    #[::tracing_test::traced_test]
  254    255   
    async fn http_prefix_headers_are_not_present_request() {
  255    256   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  256    257   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  257    258   
  258    259   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  259    260   
        let result = client
  260    261   
            .http_prefix_headers()
  261    262   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  262    263   
            .set_foo_map(::std::option::Option::Some(::std::collections::HashMap::new()))
  263    264   
            .send()
  264    265   
            .await;
  265    266   
        let _ = dbg!(result);
  266    267   
        let http_request = request_receiver.expect_request();
  267    268   
        let expected_headers = [("X-Foo", "Foo")];
  268    269   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  269    270   
        let body = http_request.body().bytes().expect("body should be strict");
  270    271   
        // No body
  271    272   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  272    273   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  273    274   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  274    275   
        ::pretty_assertions::assert_eq!(uri.path(), "/HttpPrefixHeaders", "path was incorrect");
  275    276   
    }
  276    277   
    /// Adds headers by prefix
  277    278   
    /// Test ID: HttpPrefixHeadersArePresent
  278    279   
    #[::tokio::test]
  279         -
    #[allow(unused_mut)]
         280  +
    #[::tracing_test::traced_test]
  280    281   
    async fn http_prefix_headers_are_present_response() {
  281    282   
        let expected_output = crate::operation::http_prefix_headers::HttpPrefixHeadersOutput::builder()
  282    283   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  283    284   
            .set_foo_map(::std::option::Option::Some({
  284    285   
                let mut ret = ::std::collections::HashMap::new();
  285    286   
                ret.insert("Abc".to_owned().to_ascii_lowercase(), "Abc value".to_owned());
  286    287   
                ret.insert("Def".to_owned().to_ascii_lowercase(), "Def value".to_owned());
  287    288   
                ret
  288    289   
            }))
  289    290   
            .build();
  290    291   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  291    292   
            ::http::response::Builder::new()
  292    293   
                .header("X-Foo", "Foo")
  293    294   
                .header("X-Foo-Abc", "Abc value")
  294    295   
                .header("X-Foo-Def", "Def value")
  295    296   
                .status(200)
  296    297   
                .body(::aws_smithy_types::body::SdkBody::from(""))
  297    298   
                .unwrap(),
  298    299   
        )
  299    300   
        .unwrap();
  300    301   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  301    302   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  302    303   
  303    304   
        let op = crate::operation::http_prefix_headers::HttpPrefixHeaders::new();
  304    305   
        let config = op.config().expect("the operation has config");
  305    306   
        let de = config
  306    307   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  307    308   
            .expect("the config must have a deserializer");
  308    309   
  309    310   
        let parsed = de.deserialize_streaming(&mut http_response);
  310    311   
        let parsed = parsed.unwrap_or_else(|| {
  311    312   
            let http_response =
  312    313   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  313    314   
            de.deserialize_nonstreaming(&http_response)
  314    315   
        });
  315    316   
        let parsed = parsed
  316    317   
            .expect("should be successful response")
  317    318   
            .downcast::<crate::operation::http_prefix_headers::HttpPrefixHeadersOutput>()
  318    319   
            .unwrap();
  319    320   
        ::pretty_assertions::assert_eq!(parsed.foo, expected_output.foo, "Unexpected value for `foo`");
  320    321   
        ::pretty_assertions::assert_eq!(parsed.foo_map, expected_output.foo_map, "Unexpected value for `foo_map`");
  321    322   
    }
  322    323   
    /// No prefix headers are serialized because the value is empty
  323    324   
    /// Test ID: HttpPrefixHeadersAreNotPresent
  324    325   
    #[::tokio::test]
  325         -
    #[allow(unused_mut)]
         326  +
    #[::tracing_test::traced_test]
  326    327   
    async fn http_prefix_headers_are_not_present_response() {
  327    328   
        let expected_output = crate::operation::http_prefix_headers::HttpPrefixHeadersOutput::builder()
  328    329   
            .set_foo(::std::option::Option::Some("Foo".to_owned()))
  329    330   
            .set_foo_map(::std::option::Option::Some(::std::collections::HashMap::new()))
  330    331   
            .build();
  331    332   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  332    333   
            ::http::response::Builder::new()
  333    334   
                .header("X-Foo", "Foo")
  334    335   
                .status(200)
  335    336   
                .body(::aws_smithy_types::body::SdkBody::from(""))

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_request_with_float_labels.rs

@@ -217,217 +337,338 @@
  237    237   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  238    238   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  239    239   
        })?;
  240    240   
        cfg.interceptor_state()
  241    241   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  242    242   
        ::std::result::Result::Ok(())
  243    243   
    }
  244    244   
}
  245    245   
#[allow(unreachable_code, unused_variables)]
  246    246   
#[cfg(test)]
  247         -
mod http_request_with_float_labels_request_test {
         247  +
mod http_request_with_float_labels_test {
         248  +
  248    249   
    /// Supports handling NaN float label values.
  249    250   
    /// Test ID: RestXmlSupportsNaNFloatLabels
  250    251   
    #[::tokio::test]
  251         -
    #[allow(unused_mut)]
         252  +
    #[::tracing_test::traced_test]
  252    253   
    async fn rest_xml_supports_na_n_float_labels_request() {
  253    254   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  254    255   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  255    256   
  256    257   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  257    258   
        let result = client
  258    259   
            .http_request_with_float_labels()
  259    260   
            .set_float(::std::option::Option::Some(
  260    261   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  261    262   
            ))
  262    263   
            .set_double(::std::option::Option::Some(
  263    264   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  264    265   
            ))
  265    266   
            .send()
  266    267   
            .await;
  267    268   
        let _ = dbg!(result);
  268    269   
        let http_request = request_receiver.expect_request();
  269    270   
        let body = http_request.body().bytes().expect("body should be strict");
  270    271   
        // No body
  271    272   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  272    273   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  273    274   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  274    275   
        ::pretty_assertions::assert_eq!(uri.path(), "/FloatHttpLabels/NaN/NaN", "path was incorrect");
  275    276   
    }
  276    277   
    /// Supports handling Infinity float label values.
  277    278   
    /// Test ID: RestXmlSupportsInfinityFloatLabels
  278    279   
    #[::tokio::test]
  279         -
    #[allow(unused_mut)]
         280  +
    #[::tracing_test::traced_test]
  280    281   
    async fn rest_xml_supports_infinity_float_labels_request() {
  281    282   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  282    283   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  283    284   
  284    285   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  285    286   
        let result = client
  286    287   
            .http_request_with_float_labels()
  287    288   
            .set_float(::std::option::Option::Some(
  288    289   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  289    290   
            ))
  290    291   
            .set_double(::std::option::Option::Some(
  291    292   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  292    293   
            ))
  293    294   
            .send()
  294    295   
            .await;
  295    296   
        let _ = dbg!(result);
  296    297   
        let http_request = request_receiver.expect_request();
  297    298   
        let body = http_request.body().bytes().expect("body should be strict");
  298    299   
        // No body
  299    300   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  300    301   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  301    302   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  302    303   
        ::pretty_assertions::assert_eq!(uri.path(), "/FloatHttpLabels/Infinity/Infinity", "path was incorrect");
  303    304   
    }
  304    305   
    /// Supports handling -Infinity float label values.
  305    306   
    /// Test ID: RestXmlSupportsNegativeInfinityFloatLabels
  306    307   
    #[::tokio::test]
  307         -
    #[allow(unused_mut)]
         308  +
    #[::tracing_test::traced_test]
  308    309   
    async fn rest_xml_supports_negative_infinity_float_labels_request() {
  309    310   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  310    311   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  311    312   
  312    313   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  313    314   
        let result = client
  314    315   
            .http_request_with_float_labels()
  315    316   
            .set_float(::std::option::Option::Some(
  316    317   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  317    318   
            ))

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_request_with_greedy_label_in_path.rs

@@ -220,220 +284,285 @@
  240    240   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  241    241   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  242    242   
        })?;
  243    243   
        cfg.interceptor_state()
  244    244   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  245    245   
        ::std::result::Result::Ok(())
  246    246   
    }
  247    247   
}
  248    248   
#[allow(unreachable_code, unused_variables)]
  249    249   
#[cfg(test)]
  250         -
mod http_request_with_greedy_label_in_path_request_test {
         250  +
mod http_request_with_greedy_label_in_path_test {
         251  +
  251    252   
    /// Serializes greedy labels and normal labels
  252    253   
    /// Test ID: HttpRequestWithGreedyLabelInPath
  253    254   
    #[::tokio::test]
  254         -
    #[allow(unused_mut)]
         255  +
    #[::tracing_test::traced_test]
  255    256   
    async fn http_request_with_greedy_label_in_path_request() {
  256    257   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  257    258   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  258    259   
  259    260   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  260    261   
        let result = client
  261    262   
            .http_request_with_greedy_label_in_path()
  262    263   
            .set_foo(::std::option::Option::Some("hello".to_owned()))
  263    264   
            .set_baz(::std::option::Option::Some("there/guy".to_owned()))
  264    265   
            .send()

tmp-codegen-diff/codegen-client-test/rest_xml/rust-client-codegen/src/operation/http_request_with_labels.rs

@@ -299,299 +399,400 @@
  319    319   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  320    320   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  321    321   
        })?;
  322    322   
        cfg.interceptor_state()
  323    323   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  324    324   
        ::std::result::Result::Ok(())
  325    325   
    }
  326    326   
}
  327    327   
#[allow(unreachable_code, unused_variables)]
  328    328   
#[cfg(test)]
  329         -
mod http_request_with_labels_request_test {
         329  +
mod http_request_with_labels_test {
         330  +
  330    331   
    /// Sends a GET request that uses URI label bindings
  331    332   
    /// Test ID: InputWithHeadersAndAllParams
  332    333   
    #[::tokio::test]
  333         -
    #[allow(unused_mut)]
         334  +
    #[::tracing_test::traced_test]
  334    335   
    async fn input_with_headers_and_all_params_request() {
  335    336   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  336    337   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  337    338   
  338    339   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  339    340   
        let result = client
  340    341   
            .http_request_with_labels()
  341    342   
            .set_string(::std::option::Option::Some("string".to_owned()))
  342    343   
            .set_short(::std::option::Option::Some(1))
  343    344   
            .set_integer(::std::option::Option::Some(2))
  344    345   
            .set_long(::std::option::Option::Some(3))
  345    346   
            .set_float(::std::option::Option::Some(4.1_f32))
  346    347   
            .set_double(::std::option::Option::Some(5.1_f64))
  347    348   
            .set_boolean(::std::option::Option::Some(true))
  348    349   
            .set_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  349    350   
                1576540098, 0_f64,
  350    351   
            )))
  351    352   
            .send()
  352    353   
            .await;
  353    354   
        let _ = dbg!(result);
  354    355   
        let http_request = request_receiver.expect_request();
  355    356   
        let body = http_request.body().bytes().expect("body should be strict");
  356    357   
        // No body
  357    358   
        ::pretty_assertions::assert_eq!(::std::str::from_utf8(body).unwrap(), "");
  358    359   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  359    360   
        ::pretty_assertions::assert_eq!(http_request.method(), "GET", "method was incorrect");
  360    361   
        ::pretty_assertions::assert_eq!(
  361    362   
            uri.path(),
  362    363   
            "/HttpRequestWithLabels/string/1/2/3/4.1/5.1/true/2019-12-16T23%3A48%3A18Z",
  363    364   
            "path was incorrect"
  364    365   
        );
  365    366   
    }
  366    367   
    /// Sends a GET request that uses URI label bindings
  367    368   
    /// Test ID: HttpRequestLabelEscaping
  368    369   
    #[::tokio::test]
  369         -
    #[allow(unused_mut)]
         370  +
    #[::tracing_test::traced_test]
  370    371   
    async fn http_request_label_escaping_request() {
  371    372   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  372    373   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  373    374   
  374    375   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  375    376   
        let result = client
  376    377   
            .http_request_with_labels()
  377    378   
            .set_string(::std::option::Option::Some(" %:/?#[]@!$&'()*+,;=😹".to_owned()))
  378    379   
            .set_short(::std::option::Option::Some(1))
  379    380   
            .set_integer(::std::option::Option::Some(2))