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  }