2018-11-26 09:47:04 +00:00
|
|
|
package bslack
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/42wim/matterbridge/bridge"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestExtractTopicOrPurpose(t *testing.T) {
|
|
|
|
testcases := map[string]struct {
|
|
|
|
input string
|
|
|
|
wantChangeType string
|
|
|
|
wantOutput string
|
|
|
|
}{
|
|
|
|
"success - topic type": {"@someone set channel topic: foo bar", "topic", "foo bar"},
|
|
|
|
"success - purpose type": {"@someone set channel purpose: foo bar", "purpose", "foo bar"},
|
|
|
|
"success - one line": {"@someone set channel topic: foo bar", "topic", "foo bar"},
|
|
|
|
"success - multi-line": {"@someone set channel topic: foo\nbar", "topic", "foo\nbar"},
|
|
|
|
"success - cleared": {"@someone cleared channel topic", "topic", ""},
|
|
|
|
"error - unhandled": {"some unmatched message", "unknown", ""},
|
|
|
|
}
|
|
|
|
|
|
|
|
logger := logrus.New()
|
|
|
|
logger.SetOutput(ioutil.Discard)
|
2019-02-23 21:51:27 +00:00
|
|
|
cfg := &bridge.Config{Bridge: &bridge.Bridge{Log: logrus.NewEntry(logger)}}
|
2018-11-26 09:47:04 +00:00
|
|
|
b := newBridge(cfg)
|
|
|
|
for name, tc := range testcases {
|
|
|
|
gotChangeType, gotOutput := b.extractTopicOrPurpose(tc.input)
|
|
|
|
|
|
|
|
assert.Equalf(t, tc.wantChangeType, gotChangeType, "This testcase failed: %s", name)
|
|
|
|
assert.Equalf(t, tc.wantOutput, gotOutput, "This testcase failed: %s", name)
|
|
|
|
}
|
|
|
|
}
|