(t *testing.T)
| 572 | } |
| 573 | |
| 574 | func TestKeyPath(t *testing.T) { |
| 575 | args := map[string]any{ |
| 576 | "CITY": "Paris", |
| 577 | "BREAD": "Baguette", |
| 578 | "YEAR": 2020, |
| 579 | "WINE": map[string]any{"blanc": "Sauterne", "rouge": "Bordeaux", |
| 580 | "nested": map[string]any{"Z": 321}}, |
| 581 | "WORDS": []any{"ouais", "fromage", "amour", "vachement", |
| 582 | map[string]any{"X": 123}, |
| 583 | []any{"arrayInArray"}}, |
| 584 | } |
| 585 | |
| 586 | val, err := evalKeyPath(args, "CITY") |
| 587 | if assert.NoError(t, err) { |
| 588 | assert.Equal(t, "Paris", val.Interface()) |
| 589 | } |
| 590 | val, err = evalKeyPath(args, "YEAR") |
| 591 | if assert.NoError(t, err) { |
| 592 | assert.Equal(t, 2020, val.Interface()) |
| 593 | } |
| 594 | val, err = evalKeyPath(args, "WINE.blanc") |
| 595 | if assert.NoError(t, err) { |
| 596 | assert.Equal(t, "Sauterne", val.Interface()) |
| 597 | } |
| 598 | val, err = evalKeyPath(args, "WINE.nested.Z") |
| 599 | if assert.NoError(t, err) { |
| 600 | assert.Equal(t, 321, val.Interface()) |
| 601 | } |
| 602 | val, err = evalKeyPath(args, "WORDS[1]") |
| 603 | if assert.NoError(t, err) { |
| 604 | assert.Equal(t, "fromage", val.Interface()) |
| 605 | } |
| 606 | val, err = evalKeyPath(args, "WORDS[4].X") |
| 607 | if assert.NoError(t, err) { |
| 608 | assert.Equal(t, 123, val.Interface()) |
| 609 | } |
| 610 | val, err = evalKeyPath(args, "WORDS[5][0]") |
| 611 | if assert.NoError(t, err) { |
| 612 | assert.Equal(t, "arrayInArray", val.Interface()) |
| 613 | } |
| 614 | } |
| 615 | |
| 616 | //////// UTILITY FUNCTIONS: |
| 617 |
nothing calls this directly
no test coverage detected