...

Source file src/github.com/opentracing/opentracing-go/log/util_test.go

Documentation: github.com/opentracing/opentracing-go/log

     1  package log
     2  
     3  import (
     4  	"errors"
     5  	"io"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  var nilInterface io.Reader
    12  
    13  func TestInterleavedKVToFields(t *testing.T) {
    14  
    15  	tests := []struct {
    16  		name      string
    17  		keyValues []interface{}
    18  		want      []Field
    19  		wantErr   bool
    20  	}{
    21  		{
    22  			"incorrect pair",
    23  			[]interface{}{"test"},
    24  			nil,
    25  			true,
    26  		},
    27  		{
    28  			"non string key",
    29  			[]interface{}{struct{}{}, "foo"},
    30  			nil,
    31  			true,
    32  		},
    33  		{
    34  			"happy path",
    35  			[]interface{}{
    36  				"bool", true,
    37  				"string", "string",
    38  				"int", int(1),
    39  				"int8", int8(2),
    40  				"int16", int16(3),
    41  				"int64", int64(4),
    42  				"uint", uint(5),
    43  				"uint64", uint64(6),
    44  				"uint8", uint8(7),
    45  				"uint16", uint16(8),
    46  				"uint32", uint32(9),
    47  				"float32", float32(10),
    48  				"float64", float64(11),
    49  				"int32", int32(12),
    50  				"stringer", errors.New("err"),
    51  				"nilInterface", nilInterface,
    52  				"nil", nil,
    53  			},
    54  			[]Field{
    55  				Bool("bool", true),
    56  				String("string", "string"),
    57  				Int("int", int(1)),
    58  				Int32("int8", int32(2)),
    59  				Int32("int16", int32(3)),
    60  				Int64("int64", int64(4)),
    61  				Uint64("uint", uint64(5)),
    62  				Uint64("uint64", uint64(6)),
    63  				Uint32("uint8", uint32(7)),
    64  				Uint32("uint16", uint32(8)),
    65  				Uint32("uint32", uint32(9)),
    66  				Float32("float32", float32(10)),
    67  				Float64("float64", float64(11)),
    68  				Int32("int32", int32(12)),
    69  				String("stringer", errors.New("err").Error()),
    70  				String("nilInterface", "nil"),
    71  				String("nil", "nil"),
    72  			},
    73  			false,
    74  		},
    75  	}
    76  	for _, tt := range tests {
    77  		t.Run(tt.name, func(t *testing.T) {
    78  			got, err := InterleavedKVToFields(tt.keyValues...)
    79  			if (err != nil) != tt.wantErr {
    80  				t.Errorf("InterleavedKVToFields() error = %v, wantErr %v", err, tt.wantErr)
    81  				return
    82  			}
    83  			assert.Equal(t, tt.want, got)
    84  		})
    85  	}
    86  }
    87  

View as plain text