github.com/stripe/stripe-go/v76@v76.25.0/log_test.go (about) 1 package stripe 2 3 import ( 4 "bytes" 5 "testing" 6 7 assert "github.com/stretchr/testify/require" 8 ) 9 10 // 11 // Tests 12 // 13 14 func TestDefaultLeveledLogger(t *testing.T) { 15 _, ok := DefaultLeveledLogger.(*LeveledLogger) 16 assert.True(t, ok) 17 } 18 19 // 20 // LeveledLogger 21 // 22 23 func TestLeveledLoggerDebugf(t *testing.T) { 24 var stdout, stderr bytes.Buffer 25 logger := &LeveledLogger{stdoutOverride: &stdout, stderrOverride: &stderr} 26 27 { 28 clearBuffers(&stdout, &stderr) 29 logger.Level = LevelDebug 30 31 logger.Debugf("test") 32 assert.Equal(t, "[DEBUG] test\n", stdout.String()) 33 assert.Equal(t, "", stderr.String()) 34 } 35 36 // Expect no logging 37 for _, level := range []Level{LevelInfo, LevelWarn, LevelError} { 38 clearBuffers(&stdout, &stderr) 39 logger.Level = level 40 41 logger.Debugf("test") 42 assert.Equal(t, "", stdout.String()) 43 assert.Equal(t, "", stderr.String()) 44 } 45 } 46 47 func TestLeveledLoggerInfof(t *testing.T) { 48 var stdout, stderr bytes.Buffer 49 logger := &LeveledLogger{stdoutOverride: &stdout, stderrOverride: &stderr} 50 51 for _, level := range []Level{LevelDebug, LevelInfo} { 52 clearBuffers(&stdout, &stderr) 53 logger.Level = level 54 55 logger.Infof("test") 56 assert.Equal(t, "[INFO] test\n", stdout.String()) 57 assert.Equal(t, "", stderr.String()) 58 } 59 60 // Expect no logging 61 for _, level := range []Level{LevelWarn, LevelError} { 62 clearBuffers(&stdout, &stderr) 63 logger.Level = level 64 65 logger.Infof("test") 66 assert.Equal(t, "", stdout.String()) 67 assert.Equal(t, "", stderr.String()) 68 } 69 } 70 71 func TestLeveledLoggerWarnf(t *testing.T) { 72 var stdout, stderr bytes.Buffer 73 logger := &LeveledLogger{stdoutOverride: &stdout, stderrOverride: &stderr} 74 75 for _, level := range []Level{LevelDebug, LevelInfo, LevelWarn} { 76 clearBuffers(&stdout, &stderr) 77 logger.Level = level 78 79 logger.Warnf("test") 80 assert.Equal(t, "", stdout.String()) 81 assert.Equal(t, "[WARN] test\n", stderr.String()) 82 } 83 84 // Expect no logging 85 { 86 clearBuffers(&stdout, &stderr) 87 logger.Level = LevelError 88 89 logger.Warnf("test") 90 assert.Equal(t, "", stdout.String()) 91 assert.Equal(t, "", stderr.String()) 92 } 93 } 94 95 func TestLeveledLoggerErrorf(t *testing.T) { 96 var stdout, stderr bytes.Buffer 97 logger := &LeveledLogger{stdoutOverride: &stdout, stderrOverride: &stderr} 98 99 for _, level := range []Level{LevelDebug, LevelInfo, LevelWarn, LevelError} { 100 clearBuffers(&stdout, &stderr) 101 logger.Level = level 102 103 logger.Errorf("test") 104 assert.Equal(t, "", stdout.String()) 105 assert.Equal(t, "[ERROR] test\n", stderr.String()) 106 } 107 } 108 109 // 110 // Private functions 111 // 112 113 func clearBuffers(buffers ...*bytes.Buffer) { 114 for _, b := range buffers { 115 b.Truncate(0) 116 } 117 }