...

Source file src/github.com/pelletier/go-toml/v2/cmd/jsontoml/main_test.go

Documentation: github.com/pelletier/go-toml/v2/cmd/jsontoml

     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