summaryrefslogtreecommitdiffstats
path: root/gateway/samechannel/samechannel_test.go
blob: 17d816a9b5176ed432de50b0c9150bf133b03b0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package samechannel

import (
	"io/ioutil"
	"testing"

	"github.com/42wim/matterbridge/bridge/config"
	"github.com/sirupsen/logrus"
	"github.com/stretchr/testify/assert"
)

const testConfig = `
[mattermost.test]
[slack.test]

[[samechannelgateway]]
   enable = true
   name = "blah"
      accounts = [ "mattermost.test","slack.test" ]
      channels = [ "testing","testing2","testing10"]
`

var (
	expectedConfig = config.Gateway{
		Name:   "blah",
		Enable: true,
		In:     []config.Bridge(nil),
		Out:    []config.Bridge(nil),
		InOut: []config.Bridge{
			{
				Account:     "mattermost.test",
				Channel:     "testing",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
			{
				Account:     "mattermost.test",
				Channel:     "testing2",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
			{
				Account:     "mattermost.test",
				Channel:     "testing10",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
			{
				Account:     "slack.test",
				Channel:     "testing",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
			{
				Account:     "slack.test",
				Channel:     "testing2",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
			{
				Account:     "slack.test",
				Channel:     "testing10",
				Options:     config.ChannelOptions{Key: ""},
				SameChannel: true,
			},
		},
	}
)

func TestGetConfig(t *testing.T) {
	logger := logrus.New()
	logger.SetOutput(ioutil.Discard)
	cfg := config.NewConfigFromString(logger, []byte(testConfig))
	sgw := New(cfg)
	configs := sgw.GetConfig()
	assert.Equal(t, []config.Gateway{expectedConfig}, configs)
}