github.com/xmidt-org/webpa-common@v1.11.9/logging/enrich_test.go (about)

     1  package logging
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  type testContextual struct {
    10  	key, value string
    11  }
    12  
    13  func (tc testContextual) Metadata() map[string]interface{} {
    14  	return map[string]interface{}{tc.key: tc.value}
    15  }
    16  
    17  func testEnrichNoObjects(t *testing.T) {
    18  	var (
    19  		require  = require.New(t)
    20  		delegate = new(mockLogger)
    21  	)
    22  
    23  	logger := Enrich(delegate)
    24  	require.NotNil(logger)
    25  
    26  	delegate.On("Log", []interface{}{"message", "foobar"}).Return(error(nil)).Once()
    27  	logger.Log("message", "foobar")
    28  	delegate.AssertExpectations(t)
    29  }
    30  
    31  func testEnrichWithObjects(t *testing.T) {
    32  	var (
    33  		require  = require.New(t)
    34  		delegate = new(mockLogger)
    35  	)
    36  
    37  	logger := Enrich(delegate, map[string]string{"key1": "value1"}, nil, map[string]interface{}{"key2": "value2"}, 27, testContextual{"key3", "value3"})
    38  	require.NotNil(logger)
    39  
    40  	delegate.On("Log", []interface{}{"key1", "value1", "key2", "value2", "key3", "value3", "message", "foobar"}).Return(error(nil)).Once()
    41  	logger.Log("message", "foobar")
    42  	delegate.AssertExpectations(t)
    43  }
    44  
    45  func TestEnrich(t *testing.T) {
    46  	t.Run("NoObjects", testEnrichNoObjects)
    47  	t.Run("WithObjects", testEnrichWithObjects)
    48  }
    49  
    50  func testEnrichPrefixNoObjects(t *testing.T) {
    51  	var (
    52  		require  = require.New(t)
    53  		delegate = new(mockLogger)
    54  	)
    55  
    56  	logger := EnrichPrefix(delegate)
    57  	require.NotNil(logger)
    58  
    59  	delegate.On("Log", []interface{}{"message", "foobar"}).Return(error(nil)).Once()
    60  	logger.Log("message", "foobar")
    61  	delegate.AssertExpectations(t)
    62  }
    63  
    64  func testEnrichPrefixWithObjects(t *testing.T) {
    65  	var (
    66  		require  = require.New(t)
    67  		delegate = new(mockLogger)
    68  	)
    69  
    70  	logger := EnrichPrefix(delegate, map[string]string{"key1": "value1"}, nil, map[string]interface{}{"key2": "value2"}, 27, testContextual{"key3", "value3"})
    71  	require.NotNil(logger)
    72  
    73  	delegate.On("Log", []interface{}{"key1", "value1", "key2", "value2", "key3", "value3", "message", "foobar"}).Return(error(nil)).Once()
    74  	logger.Log("message", "foobar")
    75  	delegate.AssertExpectations(t)
    76  }
    77  
    78  func TestEnrichPrefix(t *testing.T) {
    79  	t.Run("NoObjects", testEnrichPrefixNoObjects)
    80  	t.Run("WithObjects", testEnrichPrefixWithObjects)
    81  }