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

Function TestObjectEachNestedPathAndCallbackError

parser_test.go:1929–1961  ·  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

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

Callers

nothing calls this directly

Calls 1

ObjectEachFunction · 0.85

Tested by

no test coverage detected