| 274 | } |
| 275 | |
| 276 | func TestTextEncoder_Encode(t *testing.T) { |
| 277 | cases := []struct { |
| 278 | name string |
| 279 | value any |
| 280 | error error |
| 281 | }{ |
| 282 | {"string", testString, nil}, |
| 283 | {"*string", &testString, nil}, |
| 284 | {"[]byte", []byte(testString), nil}, |
| 285 | {"other", 123, fmt.Errorf("can't encode int as content/type")}, |
| 286 | } |
| 287 | |
| 288 | buffer := bytes.Buffer{} |
| 289 | encoder := newTextEncoder(&buffer, "content/type") |
| 290 | |
| 291 | for _, c := range cases { |
| 292 | t.Run(c.name, func(t *testing.T) { |
| 293 | buffer.Reset() |
| 294 | err := encoder.Encode(c.value) |
| 295 | if c.error != nil { |
| 296 | assert.Error(t, err, c.error) |
| 297 | return |
| 298 | } |
| 299 | require.NoError(t, err) |
| 300 | assert.Equal(t, testString, buffer.String()) |
| 301 | }) |
| 302 | } |
| 303 | } |
| 304 | |
| 305 | func TestTextPlainDecoder_Decode_String(t *testing.T) { |
| 306 | decoder := makeTextDecoder() |