github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/core/logger/loggers_test.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package logger_test 5 6 import ( 7 "github.com/juju/testing" 8 "go.uber.org/mock/gomock" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/core/logger" 12 "github.com/juju/juju/core/logger/mocks" 13 ) 14 15 type LoggersSuite struct { 16 testing.IsolationSuite 17 } 18 19 var _ = gc.Suite(&LoggersSuite{}) 20 21 func (s *LoggersSuite) TestMakeLoggersWithOneLogger(c *gc.C) { 22 ctrl := gomock.NewController(c) 23 defer ctrl.Finish() 24 25 mockLogger := mocks.NewMockLoggerCloser(ctrl) 26 mockLogger.EXPECT().Log([]logger.LogRecord{{ 27 Message: "hello", 28 }}) 29 30 var called bool 31 loggers := logger.MakeLoggers([]string{ 32 logger.DatabaseName, 33 }, logger.LoggersConfig{ 34 DBLogger: func() logger.Logger { 35 called = true 36 return mockLogger 37 }, 38 SysLogger: func() logger.Logger { 39 c.Fail() 40 return nil 41 }, 42 }) 43 c.Assert(called, gc.Equals, true) 44 45 loggers.Log([]logger.LogRecord{{ 46 Message: "hello", 47 }}) 48 } 49 50 func (s *LoggersSuite) TestMakeLoggersWithMultipleLoggers(c *gc.C) { 51 ctrl := gomock.NewController(c) 52 defer ctrl.Finish() 53 54 mockLogger := mocks.NewMockLoggerCloser(ctrl) 55 mockLogger.EXPECT().Log([]logger.LogRecord{{ 56 Message: "hello", 57 }}).Times(2) 58 59 loggers := logger.MakeLoggers([]string{ 60 logger.DatabaseName, 61 logger.SyslogName, 62 }, logger.LoggersConfig{ 63 DBLogger: func() logger.Logger { 64 return mockLogger 65 }, 66 SysLogger: func() logger.Logger { 67 return mockLogger 68 }, 69 }) 70 71 loggers.Log([]logger.LogRecord{{ 72 Message: "hello", 73 }}) 74 }