(t *testing.T)
| 131 | } |
| 132 | |
| 133 | func TestDecoderMultiDoc(t *testing.T) { |
| 134 | var ( |
| 135 | counter int |
| 136 | mv *MetaValue |
| 137 | body = `{ "bio": "bada bing bada boom", "id": 1, "name": "Charles" } |
| 138 | { "bio": "bada bing bada boom", "id": 2, "name": "Charles" } |
| 139 | { "bio": "bada bing bada boom", "id": 3, "name": "Charles" } |
| 140 | { "bio": "bada bing bada boom", "id": 4, "name": "Charles" } |
| 141 | { "bio": "bada bing bada boom", "id": 5, "name": "Charles" } |
| 142 | ` |
| 143 | ) |
| 144 | |
| 145 | decoder := NewDecoder(mkReader(body), 0) |
| 146 | |
| 147 | for mv = range decoder.Stream() { |
| 148 | if mv.ValueType != Object { |
| 149 | t.Fatalf("got %v value type, expected: Object value type", mv.ValueType) |
| 150 | } |
| 151 | counter++ |
| 152 | t.Logf("depth=%d offset=%d len=%d (%v)", mv.Depth, mv.Offset, mv.Length, mv.Value) |
| 153 | } |
| 154 | if err := decoder.Err(); err != nil { |
| 155 | t.Fatalf("decoder error: %s", err) |
| 156 | } |
| 157 | if counter != 5 { |
| 158 | t.Fatalf("expected 5 items, got %d", counter) |
| 159 | } |
| 160 | |
| 161 | // test at depth level 1 |
| 162 | counter = 0 |
| 163 | kvcounter := 0 |
| 164 | decoder = NewDecoder(mkReader(body), 1) |
| 165 | |
| 166 | for mv = range decoder.Stream() { |
| 167 | switch mv.Value.(type) { |
| 168 | case KV: |
| 169 | kvcounter++ |
| 170 | default: |
| 171 | counter++ |
| 172 | } |
| 173 | t.Logf("depth=%d offset=%d len=%d (%v)", mv.Depth, mv.Offset, mv.Length, mv.Value) |
| 174 | } |
| 175 | if err := decoder.Err(); err != nil { |
| 176 | t.Fatalf("decoder error: %s", err) |
| 177 | } |
| 178 | if kvcounter != 0 { |
| 179 | t.Fatalf("expected 0 keyvalue items, got %d", kvcounter) |
| 180 | } |
| 181 | if counter != 15 { |
| 182 | t.Fatalf("expected 15 items, got %d", counter) |
| 183 | } |
| 184 | |
| 185 | // test at depth level 1 w/ emitKV |
| 186 | counter = 0 |
| 187 | kvcounter = 0 |
| 188 | decoder = NewDecoder(mkReader(body), 1).EmitKV() |
| 189 | |
| 190 | for mv = range decoder.Stream() { |
nothing calls this directly
no test coverage detected
searching dependent graphs…