Verifies: SYS-REQ-112 (container length accessor). reqproof:proptest:skip targeted witness/regression test; not a property-test subject SYS-REQ-112:nominal:nominal SYS-REQ-112:boundary:nominal SYS-REQ-112:malformed_input:nominal SYS-REQ-112:malformed_input:negative
(t *testing.T)
| 12 | // SYS-REQ-112:malformed_input:nominal |
| 13 | // SYS-REQ-112:malformed_input:negative |
| 14 | func TestGetArrayLen(t *testing.T) { |
| 15 | tests := []struct { |
| 16 | name string |
| 17 | data string |
| 18 | keys []string |
| 19 | want int |
| 20 | wantErr error |
| 21 | }{ |
| 22 | { |
| 23 | name: "empty array", |
| 24 | data: `[]`, |
| 25 | want: 0, |
| 26 | }, |
| 27 | { |
| 28 | name: "one element", |
| 29 | data: `{"values":[1]}`, |
| 30 | keys: []string{"values"}, |
| 31 | want: 1, |
| 32 | }, |
| 33 | { |
| 34 | name: "five elements", |
| 35 | data: `[1,2,3,4,5]`, |
| 36 | want: 5, |
| 37 | }, |
| 38 | { |
| 39 | name: "nested array inner length", |
| 40 | data: `{"values":[[1,2,3],["ignored"]]}`, |
| 41 | keys: []string{"values", "[0]"}, |
| 42 | want: 3, |
| 43 | }, |
| 44 | { |
| 45 | name: "mixed types", |
| 46 | data: `[1,true,null,{"nested":[1,2]},["x","y"]]`, |
| 47 | want: 5, |
| 48 | }, |
| 49 | { |
| 50 | name: "array of strings", |
| 51 | data: `["one,two","three","four,five,six"]`, |
| 52 | want: 3, |
| 53 | }, |
| 54 | { |
| 55 | name: "malformed array", |
| 56 | data: `[1,2`, |
| 57 | wantErr: MalformedArrayError, |
| 58 | }, |
| 59 | { |
| 60 | name: "addressed value is not an array", |
| 61 | data: `{"values":1}`, |
| 62 | keys: []string{"values"}, |
| 63 | wantErr: KeyPathNotFoundError, |
| 64 | }, |
| 65 | { |
| 66 | name: "missing path", |
| 67 | data: `{"values":[]}`, |
| 68 | keys: []string{"missing"}, |
| 69 | wantErr: KeyPathNotFoundError, |
| 70 | }, |
| 71 | } |
nothing calls this directly
no test coverage detected