github.com/adacta-ru/mattermost-server/v6@v6.0.0/config/emitter_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package config 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 11 "github.com/adacta-ru/mattermost-server/v6/mlog" 12 "github.com/adacta-ru/mattermost-server/v6/model" 13 ) 14 15 func TestEmitter(t *testing.T) { 16 var e emitter 17 18 expectedOldCfg := &model.Config{} 19 expectedNewCfg := &model.Config{} 20 21 listener1 := false 22 id1 := e.AddListener(func(oldCfg, newCfg *model.Config) { 23 assert.Equal(t, expectedOldCfg, oldCfg) 24 assert.Equal(t, expectedNewCfg, newCfg) 25 listener1 = true 26 }) 27 28 listener2 := false 29 id2 := e.AddListener(func(oldCfg, newCfg *model.Config) { 30 assert.Equal(t, expectedOldCfg, oldCfg) 31 assert.Equal(t, expectedNewCfg, newCfg) 32 listener2 = true 33 }) 34 35 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 36 assert.True(t, listener1, "listener 1 not called") 37 assert.True(t, listener2, "listener 2 not called") 38 39 e.RemoveListener(id2) 40 41 listener1 = false 42 listener2 = false 43 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 44 assert.True(t, listener1, "listener 1 not called") 45 assert.False(t, listener2, "listener 2 should not have been called") 46 47 e.RemoveListener(id1) 48 49 listener1 = false 50 listener2 = false 51 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 52 assert.False(t, listener1, "listener 1 should not have been called") 53 assert.False(t, listener2, "listener 2 should not have been called") 54 } 55 56 func TestLogSrcEmitter(t *testing.T) { 57 var e logSrcEmitter 58 59 expectedOldCfg := make(mlog.LogTargetCfg) 60 expectedNewCfg := make(mlog.LogTargetCfg) 61 62 listener1 := false 63 id1 := e.AddListener(func(oldCfg, newCfg mlog.LogTargetCfg) { 64 assert.Equal(t, expectedOldCfg, oldCfg) 65 assert.Equal(t, expectedNewCfg, newCfg) 66 listener1 = true 67 }) 68 69 listener2 := false 70 id2 := e.AddListener(func(oldCfg, newCfg mlog.LogTargetCfg) { 71 assert.Equal(t, expectedOldCfg, oldCfg) 72 assert.Equal(t, expectedNewCfg, newCfg) 73 listener2 = true 74 }) 75 76 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 77 assert.True(t, listener1, "listener 1 not called") 78 assert.True(t, listener2, "listener 2 not called") 79 80 e.RemoveListener(id2) 81 82 listener1 = false 83 listener2 = false 84 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 85 assert.True(t, listener1, "listener 1 not called") 86 assert.False(t, listener2, "listener 2 should not have been called") 87 88 e.RemoveListener(id1) 89 90 listener1 = false 91 listener2 = false 92 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 93 assert.False(t, listener1, "listener 1 should not have been called") 94 assert.False(t, listener2, "listener 2 should not have been called") 95 }