summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/pelletier/go-toml/marshal_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pelletier/go-toml/marshal_test.go')
-rw-r--r--vendor/github.com/pelletier/go-toml/marshal_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/pelletier/go-toml/marshal_test.go b/vendor/github.com/pelletier/go-toml/marshal_test.go
index c8dee94de..891222e9b 100644
--- a/vendor/github.com/pelletier/go-toml/marshal_test.go
+++ b/vendor/github.com/pelletier/go-toml/marshal_test.go
@@ -3,6 +3,7 @@ package toml
import (
"bytes"
"encoding/json"
+ "fmt"
"io/ioutil"
"reflect"
"testing"
@@ -533,3 +534,50 @@ func TestNestedUnmarshal(t *testing.T) {
t.Errorf("Bad nested unmarshal: expected %v, got %v", expected, result)
}
}
+
+type customMarshalerParent struct {
+ Self customMarshaler `toml:"me"`
+ Friends []customMarshaler `toml:"friends"`
+}
+
+type customMarshaler struct {
+ FirsName string
+ LastName string
+}
+
+func (c customMarshaler) MarshalTOML() ([]byte, error) {
+ fullName := fmt.Sprintf("%s %s", c.FirsName, c.LastName)
+ return []byte(fullName), nil
+}
+
+var customMarshalerData = customMarshaler{FirsName: "Sally", LastName: "Fields"}
+var customMarshalerToml = []byte(`Sally Fields`)
+var nestedCustomMarshalerData = customMarshalerParent{
+ Self: customMarshaler{FirsName: "Maiku", LastName: "Suteda"},
+ Friends: []customMarshaler{customMarshalerData},
+}
+var nestedCustomMarshalerToml = []byte(`friends = ["Sally Fields"]
+me = "Maiku Suteda"
+`)
+
+func TestCustomMarshaler(t *testing.T) {
+ result, err := Marshal(customMarshalerData)
+ if err != nil {
+ t.Fatal(err)
+ }
+ expected := customMarshalerToml
+ if !bytes.Equal(result, expected) {
+ t.Errorf("Bad custom marshaler: expected\n-----\n%s\n-----\ngot\n-----\n%s\n-----\n", expected, result)
+ }
+}
+
+func TestNestedCustomMarshaler(t *testing.T) {
+ result, err := Marshal(nestedCustomMarshalerData)
+ if err != nil {
+ t.Fatal(err)
+ }
+ expected := nestedCustomMarshalerToml
+ if !bytes.Equal(result, expected) {
+ t.Errorf("Bad nested custom marshaler: expected\n-----\n%s\n-----\ngot\n-----\n%s\n-----\n", expected, result)
+ }
+}