tomlunmarshaler_test.go 952 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package mapping
  2. import (
  3. "strings"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestUnmarshalToml(t *testing.T) {
  8. const input = `a = "foo"
  9. b = 1
  10. c = "${FOO}"
  11. d = "abcd!@#$112"
  12. `
  13. var val struct {
  14. A string `json:"a"`
  15. B int `json:"b"`
  16. C string `json:"c"`
  17. D string `json:"d"`
  18. }
  19. assert.NoError(t, UnmarshalTomlReader(strings.NewReader(input), &val))
  20. assert.Equal(t, "foo", val.A)
  21. assert.Equal(t, 1, val.B)
  22. assert.Equal(t, "${FOO}", val.C)
  23. assert.Equal(t, "abcd!@#$112", val.D)
  24. }
  25. func TestUnmarshalTomlErrorToml(t *testing.T) {
  26. const input = `foo"
  27. b = 1
  28. c = "${FOO}"
  29. d = "abcd!@#$112"
  30. `
  31. var val struct {
  32. A string `json:"a"`
  33. B int `json:"b"`
  34. C string `json:"c"`
  35. D string `json:"d"`
  36. }
  37. assert.Error(t, UnmarshalTomlReader(strings.NewReader(input), &val))
  38. }
  39. func TestUnmarshalTomlBadReader(t *testing.T) {
  40. var val struct {
  41. A string `json:"a"`
  42. }
  43. assert.Error(t, UnmarshalTomlReader(new(badReader), &val))
  44. }