Skip to content

Commit e9d16a9

Browse files
authored
fix: CBOR protocol test assertions / blob serialization (#1198)
1 parent 80f4538 commit e9d16a9

File tree

5 files changed

+9
-5
lines changed

5 files changed

+9
-5
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"id": "1021e75a-45f3-4f3a-820c-700d9ec6e782",
3+
"type": "bugfix",
4+
"description": "Fix serialization of CBOR blobs"
5+
}

codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/rendering/protocol/HttpProtocolUnitTestRequestGenerator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ open class HttpProtocolUnitTestRequestGenerator protected constructor(builder: B
117117
write("return")
118118
}
119119
write("requireNotNull(expectedBytes) { #S }", "expected application/cbor body cannot be null")
120-
write("requireNotNull(expectedBytes) { #S }", "actual application/cbor body cannot be null")
120+
write("requireNotNull(actualBytes) { #S }", "actual application/cbor body cannot be null")
121121

122122
write("")
123123
write("val expectedRequest = #L(#T(expectedBytes))", inputDeserializer.name, RuntimeTypes.Serde.SerdeCbor.CborDeserializer)
124-
write("val actualRequest = #L(#T(expectedBytes))", inputDeserializer.name, RuntimeTypes.Serde.SerdeCbor.CborDeserializer)
124+
write("val actualRequest = #L(#T(actualBytes))", inputDeserializer.name, RuntimeTypes.Serde.SerdeCbor.CborDeserializer)
125125
write("assertEquals(expectedRequest, actualRequest)")
126126
}
127127
writer.write("")

codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/rendering/serde/SerializeStructGenerator.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,6 @@ open class SerializeStructGenerator(
647647
val target = member.targetOrSelf(ctx.model)
648648

649649
val encoded = when {
650-
target.type == ShapeType.BLOB -> writer.format("#L.#T()", identifier, RuntimeTypes.Core.Text.Encoding.encodeBase64String)
651650
target.type == ShapeType.TIMESTAMP -> {
652651
writer.addImport(RuntimeTypes.Core.TimestampFormat)
653652
val tsFormat = member

codegen/smithy-kotlin-codegen/src/test/kotlin/software/amazon/smithy/kotlin/codegen/rendering/serde/SerializeStructGeneratorTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1822,7 +1822,7 @@ class SerializeStructGeneratorTest {
18221822

18231823
val expected = """
18241824
serializer.serializeStruct(OBJ_DESCRIPTOR) {
1825-
input.fooBlob?.let { field(FOOBLOB_DESCRIPTOR, it.encodeBase64String()) }
1825+
input.fooBlob?.let { field(FOOBLOB_DESCRIPTOR, it) }
18261826
}
18271827
""".trimIndent()
18281828

runtime/serde/serde-xml/common/src/aws/smithy/kotlin/runtime/serde/xml/XmlSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public class XmlSerializer(private val xmlWriter: XmlStreamWriter = xmlStreamWri
134134
field(descriptor, value.format(format))
135135

136136
override fun field(descriptor: SdkFieldDescriptor, value: ByteArray): Unit =
137-
field(descriptor, value)
137+
field(descriptor, value.encodeBase64String())
138138

139139
override fun field(descriptor: SdkFieldDescriptor, value: Document?): Unit = throw SerializationException(
140140
"cannot serialize field ${descriptor.serialName}; Document type is not supported by xml encoding",

0 commit comments

Comments
 (0)