66)
77
88func TestExternalToolResultJSONUnion (t * testing.T ) {
9- stringResult := ExternalToolResult { String : stringPtr ("tool result" )}
9+ var stringResult ExternalToolResult = ExternalToolStringResult ("tool result" )
1010 raw , err := json .Marshal (stringResult )
1111 if err != nil {
1212 t .Fatalf ("marshal string result: %v" , err )
@@ -15,15 +15,16 @@ func TestExternalToolResultJSONUnion(t *testing.T) {
1515 t .Fatalf ("marshal string result = %s" , raw )
1616 }
1717
18- var decodedString ExternalToolResult
19- if err := json . Unmarshal ([] byte ( `"tool result"` ), & decodedString ); err != nil {
18+ decodedString , err := unmarshalExternalToolResult ([] byte ( `"tool result"` ))
19+ if err != nil {
2020 t .Fatalf ("unmarshal string result: %v" , err )
2121 }
22- if decodedString .String == nil || * decodedString .String != "tool result" {
22+ decodedStringValue , ok := decodedString .(ExternalToolStringResult )
23+ if ! ok || string (decodedStringValue ) != "tool result" {
2324 t .Fatalf ("unmarshal string result = %#v" , decodedString )
2425 }
2526
26- objectResult := ExternalToolResult { ExternalToolTextResultForLlm : & ExternalToolTextResultForLlm {TextResultForLlm : "expanded" } }
27+ var objectResult ExternalToolResult = & ExternalToolTextResultForLlm {TextResultForLlm : "expanded" }
2728 raw , err = json .Marshal (objectResult )
2829 if err != nil {
2930 t .Fatalf ("marshal object result: %v" , err )
@@ -32,17 +33,18 @@ func TestExternalToolResultJSONUnion(t *testing.T) {
3233 t .Fatalf ("marshal object result = %s" , raw )
3334 }
3435
35- var decodedObject ExternalToolResult
36- if err := json . Unmarshal ([] byte ( `{"textResultForLlm":"expanded"}` ), & decodedObject ); err != nil {
36+ decodedObject , err := unmarshalExternalToolResult ([] byte ( `{"textResultForLlm":"expanded"}` ))
37+ if err != nil {
3738 t .Fatalf ("unmarshal object result: %v" , err )
3839 }
39- if decodedObject .ExternalToolTextResultForLlm == nil || decodedObject .ExternalToolTextResultForLlm .TextResultForLlm != "expanded" {
40+ decodedObjectValue , ok := decodedObject .(* ExternalToolTextResultForLlm )
41+ if ! ok || decodedObjectValue .TextResultForLlm != "expanded" {
4042 t .Fatalf ("unmarshal object result = %#v" , decodedObject )
4143 }
4244}
4345
4446func TestFilterMappingJSONUnion (t * testing.T ) {
45- mapping := FilterMapping { EnumMap : map [ string ] FilterMappingValue { "secret" : FilterMappingValueHiddenCharacters } }
47+ var mapping FilterMapping = FilterMappingEnumMap { "secret" : FilterMappingValueHiddenCharacters }
4648 raw , err := json .Marshal (mapping )
4749 if err != nil {
4850 t .Fatalf ("marshal filter mapping map: %v" , err )
@@ -51,28 +53,30 @@ func TestFilterMappingJSONUnion(t *testing.T) {
5153 t .Fatalf ("marshal filter mapping map = %s" , raw )
5254 }
5355
54- var decodedMap FilterMapping
55- if err := json . Unmarshal ([] byte ( `{"secret":"hidden_characters"}` ), & decodedMap ); err != nil {
56+ decodedMap , err := unmarshalFilterMapping ([] byte ( `{"secret":"hidden_characters"}` ))
57+ if err != nil {
5658 t .Fatalf ("unmarshal filter mapping map: %v" , err )
5759 }
58- if decodedMap .EnumMap ["secret" ] != FilterMappingValueHiddenCharacters {
60+ decodedMapValue , ok := decodedMap .(FilterMappingEnumMap )
61+ if ! ok || decodedMapValue ["secret" ] != FilterMappingValueHiddenCharacters {
5962 t .Fatalf ("unmarshal filter mapping map = %#v" , decodedMap )
6063 }
6164
62- enumValue : = FilterMappingStringMarkdown
63- raw , err = json .Marshal (FilterMapping { Enum : & enumValue } )
65+ var enumValue FilterMapping = FilterMappingStringMarkdown
66+ raw , err = json .Marshal (enumValue )
6467 if err != nil {
6568 t .Fatalf ("marshal filter mapping enum: %v" , err )
6669 }
6770 if string (raw ) != `"markdown"` {
6871 t .Fatalf ("marshal filter mapping enum = %s" , raw )
6972 }
7073
71- var decodedEnum FilterMapping
72- if err := json . Unmarshal ([] byte ( `"markdown"` ), & decodedEnum ); err != nil {
74+ decodedEnum , err := unmarshalFilterMapping ([] byte ( `"markdown"` ))
75+ if err != nil {
7376 t .Fatalf ("unmarshal filter mapping enum: %v" , err )
7477 }
75- if decodedEnum .Enum == nil || * decodedEnum .Enum != FilterMappingStringMarkdown {
78+ decodedEnumValue , ok := decodedEnum .(FilterMappingString )
79+ if ! ok || decodedEnumValue != FilterMappingStringMarkdown {
7680 t .Fatalf ("unmarshal filter mapping enum = %#v" , decodedEnum )
7781 }
7882}
@@ -182,7 +186,3 @@ func TestUIElicitationSchemaPropertyJSONUnion(t *testing.T) {
182186 t .Fatalf ("round-trip confirmed property = %T, want *UIElicitationSchemaPropertyBoolean" , roundTrip .Properties ["confirmed" ])
183187 }
184188}
185-
186- func stringPtr (value string ) * string {
187- return & value
188- }
0 commit comments