...
1 package main
2
3 import (
4 "bytes"
5 "strings"
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9 "github.com/stretchr/testify/require"
10 )
11
12 func TestConvert(t *testing.T) {
13 examples := []struct {
14 name string
15 input string
16 expected string
17 errors bool
18 useJsonNumber bool
19 }{
20 {
21 name: "valid json",
22 input: `
23 {
24 "mytoml": {
25 "a": 42
26 }
27 }`,
28 expected: `[mytoml]
29 a = 42.0
30 `,
31 },
32 {
33 name: "use json number",
34 useJsonNumber: true,
35 input: `
36 {
37 "mytoml": {
38 "a": 42
39 }
40 }`,
41 expected: `[mytoml]
42 a = 42
43 `,
44 },
45 {
46 name: "invalid json",
47 input: `{ foo`,
48 errors: true,
49 },
50 }
51
52 for _, e := range examples {
53 b := new(bytes.Buffer)
54 useJsonNumber = e.useJsonNumber
55 err := convert(strings.NewReader(e.input), b)
56 if e.errors {
57 require.Error(t, err)
58 } else {
59 assert.NoError(t, err)
60 assert.Equal(t, e.expected, b.String())
61 }
62 }
63 }
64
View as plain text