github.com/nsqio/nsq@v1.3.0/internal/lg/lg_test.go (about)

     1  package lg
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/nsqio/nsq/internal/test"
     7  )
     8  
     9  type mockLogger struct {
    10  	Count int
    11  }
    12  
    13  func (l *mockLogger) Output(maxdepth int, s string) error {
    14  	l.Count++
    15  	return nil
    16  }
    17  
    18  func TestLogging(t *testing.T) {
    19  	logger := &mockLogger{}
    20  
    21  	// Test only fatal get through
    22  	logger.Count = 0
    23  	for i := 1; i <= 5; i++ {
    24  		Logf(logger, FATAL, LogLevel(i), "Test")
    25  	}
    26  	test.Equal(t, 1, logger.Count)
    27  
    28  	// Test only warnings or higher get through
    29  	logger.Count = 0
    30  	for i := 1; i <= 5; i++ {
    31  		Logf(logger, WARN, LogLevel(i), "Test")
    32  	}
    33  	test.Equal(t, 3, logger.Count)
    34  
    35  	// Test everything gets through
    36  	logger.Count = 0
    37  	for i := 1; i <= 5; i++ {
    38  		Logf(logger, DEBUG, LogLevel(i), "Test")
    39  	}
    40  	test.Equal(t, 5, logger.Count)
    41  }