valuer_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package mapping
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestMapValuerWithInherit_Value(t *testing.T) {
  7. input := map[string]any{
  8. "discovery": map[string]any{
  9. "host": "localhost",
  10. "port": 8080,
  11. },
  12. "component": map[string]any{
  13. "name": "test",
  14. },
  15. }
  16. valuer := recursiveValuer{
  17. current: mapValuer(input["component"].(map[string]any)),
  18. parent: simpleValuer{
  19. current: mapValuer(input),
  20. },
  21. }
  22. val, ok := valuer.Value("discovery")
  23. assert.True(t, ok)
  24. m, ok := val.(map[string]any)
  25. assert.True(t, ok)
  26. assert.Equal(t, "localhost", m["host"])
  27. assert.Equal(t, 8080, m["port"])
  28. }
  29. func TestRecursiveValuer_Value(t *testing.T) {
  30. input := map[string]any{
  31. "component": map[string]any{
  32. "name": "test",
  33. "foo": map[string]any{
  34. "bar": "baz",
  35. },
  36. },
  37. "foo": "value",
  38. }
  39. valuer := recursiveValuer{
  40. current: mapValuer(input["component"].(map[string]any)),
  41. parent: simpleValuer{
  42. current: mapValuer(input),
  43. },
  44. }
  45. val, ok := valuer.Value("foo")
  46. assert.True(t, ok)
  47. assert.EqualValues(t, map[string]any{
  48. "bar": "baz",
  49. }, val)
  50. }