MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestKeyPath

Function TestKeyPath

db/functions/function_test.go:574–614  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

572}
573
574func 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

Callers

nothing calls this directly

Calls 2

evalKeyPathFunction · 0.85
EqualMethod · 0.45

Tested by

no test coverage detected