github.com/lingyao2333/mo-zero@v1.4.1/zrpc/internal/rpclogger_test.go (about)

     1  package internal
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/lingyao2333/mo-zero/core/logx"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  const content = "foo"
    12  
    13  func TestLoggerError(t *testing.T) {
    14  	w, restore := injectLog()
    15  	defer restore()
    16  
    17  	logger := new(Logger)
    18  	logger.Error(content)
    19  	assert.Contains(t, w.String(), content)
    20  }
    21  
    22  func TestLoggerErrorf(t *testing.T) {
    23  	w, restore := injectLog()
    24  	defer restore()
    25  
    26  	logger := new(Logger)
    27  	logger.Errorf(content)
    28  	assert.Contains(t, w.String(), content)
    29  }
    30  
    31  func TestLoggerErrorln(t *testing.T) {
    32  	w, restore := injectLog()
    33  	defer restore()
    34  
    35  	logger := new(Logger)
    36  	logger.Errorln(content)
    37  	assert.Contains(t, w.String(), content)
    38  }
    39  
    40  func TestLoggerFatal(t *testing.T) {
    41  	w, restore := injectLog()
    42  	defer restore()
    43  
    44  	logger := new(Logger)
    45  	logger.Fatal(content)
    46  	assert.Contains(t, w.String(), content)
    47  }
    48  
    49  func TestLoggerFatalf(t *testing.T) {
    50  	w, restore := injectLog()
    51  	defer restore()
    52  
    53  	logger := new(Logger)
    54  	logger.Fatalf(content)
    55  	assert.Contains(t, w.String(), content)
    56  }
    57  
    58  func TestLoggerFatalln(t *testing.T) {
    59  	w, restore := injectLog()
    60  	defer restore()
    61  
    62  	logger := new(Logger)
    63  	logger.Fatalln(content)
    64  	assert.Contains(t, w.String(), content)
    65  }
    66  
    67  func TestLoggerInfo(t *testing.T) {
    68  	w, restore := injectLog()
    69  	defer restore()
    70  
    71  	logger := new(Logger)
    72  	logger.Info(content)
    73  	assert.Empty(t, w.String())
    74  }
    75  
    76  func TestLoggerInfof(t *testing.T) {
    77  	w, restore := injectLog()
    78  	defer restore()
    79  
    80  	logger := new(Logger)
    81  	logger.Infof(content)
    82  	assert.Empty(t, w.String())
    83  }
    84  
    85  func TestLoggerWarning(t *testing.T) {
    86  	w, restore := injectLog()
    87  	defer restore()
    88  
    89  	logger := new(Logger)
    90  	logger.Warning(content)
    91  	assert.Empty(t, w.String())
    92  }
    93  
    94  func TestLoggerInfoln(t *testing.T) {
    95  	w, restore := injectLog()
    96  	defer restore()
    97  
    98  	logger := new(Logger)
    99  	logger.Infoln(content)
   100  	assert.Empty(t, w.String())
   101  }
   102  
   103  func TestLoggerWarningf(t *testing.T) {
   104  	w, restore := injectLog()
   105  	defer restore()
   106  
   107  	logger := new(Logger)
   108  	logger.Warningf(content)
   109  	assert.Empty(t, w.String())
   110  }
   111  
   112  func TestLoggerWarningln(t *testing.T) {
   113  	w, restore := injectLog()
   114  	defer restore()
   115  
   116  	logger := new(Logger)
   117  	logger.Warningln(content)
   118  	assert.Empty(t, w.String())
   119  }
   120  
   121  func TestLogger_V(t *testing.T) {
   122  	logger := new(Logger)
   123  	// grpclog.fatalLog
   124  	assert.True(t, logger.V(3))
   125  	// grpclog.infoLog
   126  	assert.False(t, logger.V(0))
   127  }
   128  
   129  func injectLog() (r *strings.Builder, restore func()) {
   130  	var buf strings.Builder
   131  	w := logx.NewWriter(&buf)
   132  	o := logx.Reset()
   133  	logx.SetWriter(w)
   134  
   135  	return &buf, func() {
   136  		logx.Reset()
   137  		logx.SetWriter(o)
   138  	}
   139  }