github.com/akzi/consul@v1.4.5/logger/grpc_test.go (about)

     1  package logger
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"log"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"google.golang.org/grpc/grpclog"
    13  )
    14  
    15  func TestGRPCLogger(t *testing.T) {
    16  	var out bytes.Buffer
    17  	// No flags so we don't have to include date/time in expected output
    18  	logger := log.New(&out, "", 0)
    19  	grpclog.SetLoggerV2(NewGRPCLogger(&Config{LogLevel: "TRACE"}, logger))
    20  
    21  	// All of these should output something
    22  	grpclog.Info("Info,")
    23  	grpclog.Infoln("Infoln")
    24  	grpclog.Infof("Infof: %d\n", 1)
    25  
    26  	grpclog.Warning("Warning,")
    27  	grpclog.Warningln("Warningln")
    28  	grpclog.Warningf("Warningf: %d\n", 1)
    29  
    30  	grpclog.Error("Error,")
    31  	grpclog.Errorln("Errorln")
    32  	grpclog.Errorf("Errorf: %d\n", 1)
    33  
    34  	// Fatal tests are hard... assume they are good!
    35  	expect := `[INFO] Info,
    36  [INFO] Infoln
    37  [INFO] Infof: 1
    38  [WARN] Warning,
    39  [WARN] Warningln
    40  [WARN] Warningf: 1
    41  [ERR] Error,
    42  [ERR] Errorln
    43  [ERR] Errorf: 1
    44  `
    45  
    46  	require.Equal(t, expect, out.String())
    47  }
    48  
    49  func TestGRPCLogger_V(t *testing.T) {
    50  
    51  	tests := []struct {
    52  		level string
    53  		v     int
    54  		want  bool
    55  	}{
    56  		{"ERR", -1, false},
    57  		{"ERR", 0, false},
    58  		{"ERR", 1, false},
    59  		{"ERR", 2, false},
    60  		{"ERR", 3, false},
    61  		{"WARN", -1, false},
    62  		{"WARN", 0, false},
    63  		{"WARN", 1, false},
    64  		{"WARN", 2, false},
    65  		{"WARN", 3, false},
    66  		{"INFO", -1, true},
    67  		{"INFO", 0, true},
    68  		{"INFO", 1, false},
    69  		{"INFO", 2, false},
    70  		{"INFO", 3, false},
    71  		{"DEBUG", -1, true},
    72  		{"DEBUG", 0, true},
    73  		{"DEBUG", 1, true},
    74  		{"DEBUG", 2, false},
    75  		{"DEBUG", 3, false},
    76  		{"TRACE", -1, true},
    77  		{"TRACE", 0, true},
    78  		{"TRACE", 1, true},
    79  		{"TRACE", 2, true},
    80  		{"TRACE", 3, true},
    81  	}
    82  
    83  	for _, tt := range tests {
    84  		t.Run(fmt.Sprintf("%s,%d", tt.level, tt.v), func(t *testing.T) {
    85  			var out bytes.Buffer
    86  			// No flags so we don't have to include date/time in expected output
    87  			logger := log.New(&out, "", 0)
    88  			grpclog.SetLoggerV2(NewGRPCLogger(&Config{LogLevel: tt.level}, logger))
    89  
    90  			assert.Equal(t, tt.want, grpclog.V(tt.v))
    91  		})
    92  	}
    93  
    94  }