MCPcopy
hub / github.com/TomWright/dasel / TestTomlReader_ComplexFile

Function TestTomlReader_ComplexFile

parsing/toml/toml_reader_test.go:312–381  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

310}
311
312func TestTomlReader_ComplexFile(t *testing.T) {
313 dataPath := filepath.Join("testdata", "complex_example.toml")
314 b, err := os.ReadFile(dataPath)
315 if err != nil {
316 t.Fatalf("failed reading test data: %v", err)
317 }
318
319 r, err := toml.TOML.NewReader(parsing.DefaultReaderOptions())
320 if err != nil {
321 t.Fatalf("unexpected error creating reader: %v", err)
322 }
323
324 val, err := r.Read(b)
325 if err != nil {
326 t.Fatalf("unexpected error reading toml: %v", err)
327 }
328
329 // spot check some keys
330 owner, err := val.GetMapKey("owner")
331 if err != nil {
332 t.Fatalf("missing owner: %v", err)
333 }
334 name, err := owner.GetMapKey("name")
335 if err != nil {
336 t.Fatalf("missing owner.name: %v", err)
337 }
338 if got, _ := name.StringValue(); got != "Tom Preston-Werner" {
339 t.Fatalf("unexpected owner.name: %s", got)
340 }
341
342 // quoted key
343 qk, err := val.GetMapKey("quoted key")
344 if err != nil {
345 t.Fatalf("missing quoted key: %v", err)
346 }
347 if s, _ := qk.StringValue(); s != "quoted value" {
348 t.Fatalf("unexpected quoted key value: %s", s)
349 }
350
351 // products array length
352 products, err := val.GetMapKey("products")
353 if err != nil {
354 t.Fatalf("missing products: %v", err)
355 }
356 if l, _ := products.SliceLen(); l != 2 {
357 t.Fatalf("expected 2 products, got %d", l)
358 }
359
360 // a.b quoted
361 ab, err := val.GetMapKey("a.b")
362 if err != nil {
363 t.Fatalf("missing a.b: %v", err)
364 }
365 if i, _ := ab.IntValue(); i != 42 {
366 t.Fatalf("unexpected a.b: %d", i)
367 }
368
369 // nested table header value

Callers

nothing calls this directly

Calls 7

ReadMethod · 0.95
DefaultReaderOptionsFunction · 0.92
NewReaderMethod · 0.80
GetMapKeyMethod · 0.80
StringValueMethod · 0.80
SliceLenMethod · 0.80
IntValueMethod · 0.80

Tested by

no test coverage detected