MCPcopy Create free account
hub / github.com/buger/jsonparser / TestObjectEachNestedPathAndCallbackError

Function TestObjectEachNestedPathAndCallbackError

parser_test.go:1928–1960  ·  view source on GitHub ↗

Verifies: SYS-REQ-032 [boundary] MCDC SYS-REQ-032: addressed_object_is_well_formed=T, object_callback_returns_error=T, object_callback_error_is_returned=T => TRUE

(t *testing.T)

Source from the content-addressed store, hash-verified

1926// Verifies: SYS-REQ-032 [boundary]
1927// MCDC SYS-REQ-032: addressed_object_is_well_formed=T, object_callback_returns_error=T, object_callback_error_is_returned=T => TRUE
1928func TestObjectEachNestedPathAndCallbackError(t *testing.T) {
1929 t.Run("nested object path", func(t *testing.T) {
1930 var entries []keyValueEntry
1931 err := ObjectEach([]byte(`{"outer":{"a":1,"b":true}}`), func(key, value []byte, valueType ValueType, off int) error {
1932 entries = append(entries, keyValueEntry{
1933 key: string(key),
1934 value: string(value),
1935 valueType: valueType,
1936 })
1937 return nil
1938 }, "outer")
1939 if err != nil {
1940 t.Fatalf("ObjectEach nested path returned error: %v", err)
1941 }
1942 expected := []keyValueEntry{
1943 {key: "a", value: "1", valueType: Number},
1944 {key: "b", value: "true", valueType: Boolean},
1945 }
1946 if !reflect.DeepEqual(expected, entries) {
1947 t.Fatalf("ObjectEach nested path entries mismatch: expected %#v, got %#v", expected, entries)
1948 }
1949 })
1950
1951 t.Run("callback error is returned", func(t *testing.T) {
1952 sentinel := errors.New("stop iteration")
1953 err := ObjectEach([]byte(`{"a":1}`), func(key, value []byte, valueType ValueType, off int) error {
1954 return sentinel
1955 })
1956 if !errors.Is(err, sentinel) {
1957 t.Fatalf("ObjectEach callback error mismatch: expected %v, got %v", sentinel, err)
1958 }
1959 })
1960}
1961
1962var testJson = []byte(`{
1963 "name": "Name",

Callers

nothing calls this directly

Calls 1

ObjectEachFunction · 0.85

Tested by

no test coverage detected