github.com/ashishbhate/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  }