github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/message/base_test.go (about) 1 package message 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/suite" 7 ) 8 9 type ComposerBaseSuite struct { 10 base *Base 11 suite.Suite 12 } 13 14 func TestComposerBaseSuite(t *testing.T) { 15 suite.Run(t, new(ComposerBaseSuite)) 16 } 17 18 func (s *ComposerBaseSuite) SetupTest() { 19 s.base = &Base{} 20 } 21 22 func (s *ComposerBaseSuite) TestCollectWithBasicMetadataOnly() { 23 s.NoError(s.base.Collect(false)) 24 originalTime := s.base.Time 25 s.NotZero(s.base.Time) 26 s.Zero(s.base.Hostname) 27 s.Zero(s.base.Process) 28 s.Zero(s.base.Pid) 29 30 s.NoError(s.base.Collect(false)) 31 s.Equal(originalTime, s.base.Time, "time should not change when collecing basic metadata multiple times") 32 } 33 34 func (s *ComposerBaseSuite) TestCollectWithExtendedMetadata() { 35 s.Equal("", s.base.Hostname) 36 s.NoError(s.base.Collect(true)) 37 s.NotZero(s.base.Hostname) 38 s.NotZero(s.base.Pid) 39 s.NotZero(s.base.Process) 40 s.NotZero(s.base.Time) 41 } 42 43 func (s *ComposerBaseSuite) TestCollectExtendedNoopsIfExtendedMetadataAlreadySet() { 44 s.base.Pid = 1 45 s.base.Hostname = "hostname" 46 s.base.Process = "process" 47 s.NoError(s.base.Collect(true)) 48 s.NotZero(s.base.Time) 49 s.Equal(1, s.base.Pid) 50 s.Equal("hostname", s.base.Hostname) 51 s.Equal("process", s.base.Process) 52 } 53 54 func (s *ComposerBaseSuite) TestAnnotateAddsFields() { 55 s.Nil(s.base.Context) 56 s.NoError(s.base.Annotate("k", "foo")) 57 s.NotNil(s.base.Context) 58 } 59 60 func (s *ComposerBaseSuite) TestAnnotateErrorsForSameValue() { 61 s.NoError(s.base.Annotate("k", "foo")) 62 s.Error(s.base.Annotate("k", "foo")) 63 64 s.Equal("foo", s.base.Context["k"]) 65 } 66 67 func (s *ComposerBaseSuite) TestAnnotateMultipleValues() { 68 s.NoError(s.base.Annotate("kOne", "foo")) 69 s.NoError(s.base.Annotate("kTwo", "foo")) 70 s.Equal("foo", s.base.Context["kOne"]) 71 s.Equal("foo", s.base.Context["kTwo"]) 72 }