forked from sashabaranov/go-openai
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunmarshaler_test.go
More file actions
37 lines (29 loc) · 868 Bytes
/
Copy pathunmarshaler_test.go
File metadata and controls
37 lines (29 loc) · 868 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package openai_test
import (
"testing"
openai "github.com/sashabaranov/go-openai/internal"
"github.com/sashabaranov/go-openai/internal/test/checks"
)
func TestJSONUnmarshaler_Normal(t *testing.T) {
jm := &openai.JSONUnmarshaler{}
data := []byte(`{"key":"value"}`)
var v map[string]string
err := jm.Unmarshal(data, &v)
checks.NoError(t, err)
if v["key"] != "value" {
t.Fatal("unmarshal result mismatch")
}
}
func TestJSONUnmarshaler_InvalidJSON(t *testing.T) {
jm := &openai.JSONUnmarshaler{}
data := []byte(`{invalid}`)
var v map[string]interface{}
err := jm.Unmarshal(data, &v)
checks.HasError(t, err, "should return error for invalid JSON")
}
func TestJSONUnmarshaler_EmptyInput(t *testing.T) {
jm := &openai.JSONUnmarshaler{}
var v interface{}
err := jm.Unmarshal(nil, &v)
checks.HasError(t, err, "should return error for nil input")
}