github.com/RajatVaryani/mattermost-server@v5.11.1+incompatible/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/mattermost/mattermost-server/model" 12 ) 13 14 func TestEmitter(t *testing.T) { 15 var e emitter 16 17 expectedOldCfg := &model.Config{} 18 expectedNewCfg := &model.Config{} 19 20 listener1 := false 21 id1 := e.AddListener(func(oldCfg, newCfg *model.Config) { 22 assert.Equal(t, expectedOldCfg, oldCfg) 23 assert.Equal(t, expectedNewCfg, newCfg) 24 listener1 = true 25 }) 26 27 listener2 := false 28 id2 := e.AddListener(func(oldCfg, newCfg *model.Config) { 29 assert.Equal(t, expectedOldCfg, oldCfg) 30 assert.Equal(t, expectedNewCfg, newCfg) 31 listener2 = true 32 }) 33 34 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 35 assert.True(t, listener1, "listener 1 not called") 36 assert.True(t, listener2, "listener 2 not called") 37 38 e.RemoveListener(id2) 39 40 listener1 = false 41 listener2 = false 42 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 43 assert.True(t, listener1, "listener 1 not called") 44 assert.False(t, listener2, "listener 2 should not have been called") 45 46 e.RemoveListener(id1) 47 48 listener1 = false 49 listener2 = false 50 e.invokeConfigListeners(expectedOldCfg, expectedNewCfg) 51 assert.False(t, listener1, "listener 1 should not have been called") 52 assert.False(t, listener2, "listener 2 should not have been called") 53 }