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 }