github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/xtest/to_json_test.go (about)

     1  package xtest
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestToJSON(t *testing.T) {
    10  	for _, tt := range []struct {
    11  		name string
    12  		v    interface{}
    13  		s    string
    14  	}{
    15  		{
    16  			name: CurrentFileLine(),
    17  			v:    int64(123),
    18  			s:    "123",
    19  		},
    20  		{
    21  			name: CurrentFileLine(),
    22  			v: struct {
    23  				A string
    24  				B int64
    25  				C bool
    26  			}{
    27  				A: "123",
    28  				B: 123,
    29  				C: true,
    30  			},
    31  			s: "{\n\t\"A\": \"123\",\n\t\"B\": 123,\n\t\"C\": true\n}",
    32  		},
    33  		{
    34  			name: CurrentFileLine(),
    35  			v: map[string]struct {
    36  				A string
    37  				B int64
    38  				C bool
    39  			}{
    40  				"abc": {
    41  					A: "123",
    42  					B: 123,
    43  					C: true,
    44  				},
    45  				"def": {
    46  					A: "456",
    47  					B: 456,
    48  					C: false,
    49  				},
    50  			},
    51  			s: "{\n\t\"abc\": {\n\t\t\"A\": \"123\",\n\t\t\"B\": 123,\n\t\t\"C\": true\n\t},\n\t\"def\": {\n\t\t\"A\": \"456\",\n\t\t\"B\": 456,\n\t\t\"C\": false\n\t}\n}", //nolint:lll
    52  		},
    53  	} {
    54  		t.Run(tt.name, func(t *testing.T) {
    55  			require.Equal(t, tt.s, ToJSON(tt.v))
    56  		})
    57  	}
    58  }