Loading aws/sdk-codegen/src/test/kotlin/software/amazon/smithy/rustsdk/EndpointConfigCustomizationTest.kt +38 −36 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ package software.amazon.smithy.rustsdk import org.junit.jupiter.api.Test import software.amazon.smithy.model.node.ObjectNode import software.amazon.smithy.rust.codegen.rustlang.CargoDependency import software.amazon.smithy.rust.codegen.rustlang.asType import software.amazon.smithy.rust.codegen.rustlang.rustTemplate import software.amazon.smithy.rust.codegen.smithy.CodegenContext import software.amazon.smithy.rust.codegen.smithy.CodegenVisitor import software.amazon.smithy.rust.codegen.smithy.RustCrate Loading @@ -24,6 +26,10 @@ import software.amazon.smithy.rust.codegen.testutil.unitTest import software.amazon.smithy.rust.codegen.util.runCommand internal class EndpointConfigCustomizationTest { private val codegenScope = arrayOf( "http" to CargoDependency.Http.asType(), "aws_types" to awsTypes(AwsTestRuntimeConfig).asType() ) private val model = """ namespace test Loading Loading @@ -163,51 +169,47 @@ internal class EndpointConfigCustomizationTest { fun `support region-specific endpoint overrides`() { validateEndpointCustomizationForService("test#TestService") { crate -> crate.lib { it.addDependency(awsTypes(AwsTestRuntimeConfig)) it.addDependency(CargoDependency.Http) it.unitTest( "region_override", it.unitTest("region_override") { rustTemplate( """ use aws_types::region::Region; use http::Uri; let conf = crate::config::Config::builder().build(); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("fips-ca-central-1")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("fips-ca-central-1")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://access-analyzer-fips.ca-central-1.amazonaws.com/?k=v")); """ assert_eq!(uri, #{http}::Uri::from_static("https://access-analyzer-fips.ca-central-1.amazonaws.com/?k=v")); """, *codegenScope ) } } } } @Test fun `support region-agnostic services`() { validateEndpointCustomizationForService("test#NoRegions") { crate -> crate.lib { it.addDependency(awsTypes(AwsTestRuntimeConfig)) it.addDependency(CargoDependency.Http) it.unitTest( "global_services", it.unitTest("global_services") { rustTemplate( """ use aws_types::region::Region; use http::Uri; let conf = crate::config::Config::builder().build(); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("us-east-1")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("us-east-1")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://iam.amazonaws.com/?k=v")); assert_eq!(uri, #{http}::Uri::from_static("https://iam.amazonaws.com/?k=v")); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("iam-fips")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("iam-fips")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://iam-fips.amazonaws.com/?k=v")); """ assert_eq!(uri, #{http}::Uri::from_static("https://iam-fips.amazonaws.com/?k=v")); """, *codegenScope ) } } } } } codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/testutil/Rust.kt +12 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,18 @@ fun RustWriter.unitTest( } } /* * Writes a Rust-style unit test */ fun RustWriter.unitTest( name: String, vararg args: Any, block: RustWriter.() -> Unit ): RustWriter { raw("#[test]") return rustBlock("fn $name()", *args, block = block) } /** * WriterDelegator used for test purposes * Loading Loading
aws/sdk-codegen/src/test/kotlin/software/amazon/smithy/rustsdk/EndpointConfigCustomizationTest.kt +38 −36 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ package software.amazon.smithy.rustsdk import org.junit.jupiter.api.Test import software.amazon.smithy.model.node.ObjectNode import software.amazon.smithy.rust.codegen.rustlang.CargoDependency import software.amazon.smithy.rust.codegen.rustlang.asType import software.amazon.smithy.rust.codegen.rustlang.rustTemplate import software.amazon.smithy.rust.codegen.smithy.CodegenContext import software.amazon.smithy.rust.codegen.smithy.CodegenVisitor import software.amazon.smithy.rust.codegen.smithy.RustCrate Loading @@ -24,6 +26,10 @@ import software.amazon.smithy.rust.codegen.testutil.unitTest import software.amazon.smithy.rust.codegen.util.runCommand internal class EndpointConfigCustomizationTest { private val codegenScope = arrayOf( "http" to CargoDependency.Http.asType(), "aws_types" to awsTypes(AwsTestRuntimeConfig).asType() ) private val model = """ namespace test Loading Loading @@ -163,51 +169,47 @@ internal class EndpointConfigCustomizationTest { fun `support region-specific endpoint overrides`() { validateEndpointCustomizationForService("test#TestService") { crate -> crate.lib { it.addDependency(awsTypes(AwsTestRuntimeConfig)) it.addDependency(CargoDependency.Http) it.unitTest( "region_override", it.unitTest("region_override") { rustTemplate( """ use aws_types::region::Region; use http::Uri; let conf = crate::config::Config::builder().build(); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("fips-ca-central-1")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("fips-ca-central-1")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://access-analyzer-fips.ca-central-1.amazonaws.com/?k=v")); """ assert_eq!(uri, #{http}::Uri::from_static("https://access-analyzer-fips.ca-central-1.amazonaws.com/?k=v")); """, *codegenScope ) } } } } @Test fun `support region-agnostic services`() { validateEndpointCustomizationForService("test#NoRegions") { crate -> crate.lib { it.addDependency(awsTypes(AwsTestRuntimeConfig)) it.addDependency(CargoDependency.Http) it.unitTest( "global_services", it.unitTest("global_services") { rustTemplate( """ use aws_types::region::Region; use http::Uri; let conf = crate::config::Config::builder().build(); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("us-east-1")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("us-east-1")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://iam.amazonaws.com/?k=v")); assert_eq!(uri, #{http}::Uri::from_static("https://iam.amazonaws.com/?k=v")); let endpoint = conf.endpoint_resolver .resolve_endpoint(&Region::new("iam-fips")).expect("default resolver produces a valid endpoint"); let mut uri = Uri::from_static("/?k=v"); .resolve_endpoint(&#{aws_types}::region::Region::new("iam-fips")).expect("default resolver produces a valid endpoint"); let mut uri = #{http}::Uri::from_static("/?k=v"); endpoint.set_endpoint(&mut uri, None); assert_eq!(uri, Uri::from_static("https://iam-fips.amazonaws.com/?k=v")); """ assert_eq!(uri, #{http}::Uri::from_static("https://iam-fips.amazonaws.com/?k=v")); """, *codegenScope ) } } } } }
codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/testutil/Rust.kt +12 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,18 @@ fun RustWriter.unitTest( } } /* * Writes a Rust-style unit test */ fun RustWriter.unitTest( name: String, vararg args: Any, block: RustWriter.() -> Unit ): RustWriter { raw("#[test]") return rustBlock("fn $name()", *args, block = block) } /** * WriterDelegator used for test purposes * Loading