github.com/paketo-buildpacks/libpak@v1.70.0/internal/toml_marshal_test.go (about) 1 package internal_test 2 3 import ( 4 "testing" 5 6 "github.com/BurntSushi/toml" 7 . "github.com/onsi/gomega" 8 "github.com/paketo-buildpacks/libpak/internal" 9 "github.com/sclevine/spec" 10 ) 11 12 type Stuff struct { 13 AString string 14 AnInt int 15 AFloat float64 16 AnArray []string 17 AMap map[string]string 18 APointer *string 19 BPointer *string 20 } 21 22 func testTOMLMarshal(t *testing.T, context spec.G, it spec.S) { 23 var ( 24 Expect = NewWithT(t).Expect 25 ) 26 27 it("marshals and unmarshals without change", func() { 28 bString := "b_string" 29 someData := Stuff{ 30 "a_string", 31 10034, 3040.23943, 32 []string{"foo", "bar", "baz"}, 33 map[string]string{ 34 "AM": "1", 35 "bar": "2", 36 "baz": "3", 37 }, 38 nil, 39 &bString, 40 } 41 42 dataBytes, err := internal.Marshal(someData) 43 Expect(err).ToNot(HaveOccurred()) 44 Expect(dataBytes).ToNot(BeEmpty()) 45 46 output := Stuff{} 47 err = toml.Unmarshal(dataBytes, &output) 48 Expect(err).ToNot(HaveOccurred()) 49 Expect(someData).To(Equal(output)) 50 Expect(someData.APointer).To(BeNil()) 51 }) 52 }