github.com/sykesm/fabric@v1.1.0-preview.0.20200129034918-2aa12b1a0181/common/flogging/levels_test.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package flogging_test
     8  
     9  import (
    10  	"testing"
    11  
    12  	"github.com/hyperledger/fabric/common/flogging"
    13  	"github.com/stretchr/testify/assert"
    14  	"go.uber.org/zap/zapcore"
    15  )
    16  
    17  func TestNameToLevel(t *testing.T) {
    18  	var tests = []struct {
    19  		names []string
    20  		level zapcore.Level
    21  	}{
    22  		{names: []string{"PAYLOAD", "payload"}, level: flogging.PayloadLevel},
    23  		{names: []string{"DEBUG", "debug"}, level: zapcore.DebugLevel},
    24  		{names: []string{"INFO", "info"}, level: zapcore.InfoLevel},
    25  		{names: []string{"WARNING", "warning", "WARN", "warn"}, level: zapcore.WarnLevel},
    26  		{names: []string{"ERROR", "error"}, level: zapcore.ErrorLevel},
    27  		{names: []string{"DPANIC", "dpanic"}, level: zapcore.DPanicLevel},
    28  		{names: []string{"PANIC", "panic"}, level: zapcore.PanicLevel},
    29  		{names: []string{"FATAL", "fatal"}, level: zapcore.FatalLevel},
    30  		{names: []string{"NOTICE", "notice"}, level: zapcore.InfoLevel},
    31  		{names: []string{"CRITICAL", "critical"}, level: zapcore.ErrorLevel},
    32  		{names: []string{"unexpected", "invalid"}, level: zapcore.InfoLevel},
    33  	}
    34  
    35  	for _, tc := range tests {
    36  		for _, name := range tc.names {
    37  			t.Run(name, func(t *testing.T) {
    38  				assert.Equal(t, tc.level, flogging.NameToLevel(name))
    39  			})
    40  		}
    41  	}
    42  }
    43  
    44  func TestIsValidLevel(t *testing.T) {
    45  	validNames := []string{
    46  		"PAYLOAD", "payload",
    47  		"DEBUG", "debug",
    48  		"INFO", "info",
    49  		"WARNING", "warning",
    50  		"WARN", "warn",
    51  		"ERROR", "error",
    52  		"DPANIC", "dpanic",
    53  		"PANIC", "panic",
    54  		"FATAL", "fatal",
    55  		"NOTICE", "notice",
    56  		"CRITICAL", "critical",
    57  	}
    58  	for _, name := range validNames {
    59  		t.Run(name, func(t *testing.T) {
    60  			assert.True(t, flogging.IsValidLevel(name))
    61  		})
    62  	}
    63  
    64  	invalidNames := []string{
    65  		"george", "bob",
    66  		"warnings", "inf",
    67  		"DISABLED", "disabled", // can only be used programmatically
    68  	}
    69  	for _, name := range invalidNames {
    70  		t.Run(name, func(t *testing.T) {
    71  			assert.False(t, flogging.IsValidLevel(name))
    72  		})
    73  	}
    74  }