mirror of
https://github.com/kopia/kopia.git
synced 2026-05-11 08:16:12 -04:00
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package jsonsender_test
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/kopia/kopia/internal/testlogging"
|
|
"github.com/kopia/kopia/notification"
|
|
"github.com/kopia/kopia/notification/sender"
|
|
"github.com/kopia/kopia/notification/sender/jsonsender"
|
|
)
|
|
|
|
func TestJSONSender(t *testing.T) {
|
|
ctx := testlogging.Context(t)
|
|
|
|
var buf bytes.Buffer
|
|
|
|
p := jsonsender.NewJSONSender("NOTIFICATION:", &buf, notification.SeverityWarning)
|
|
|
|
m1 := &sender.Message{
|
|
Subject: "test subject 1",
|
|
Body: "test body 1",
|
|
Severity: notification.SeverityVerbose,
|
|
}
|
|
m2 := &sender.Message{
|
|
Subject: "test subject 2",
|
|
Body: "test body 2",
|
|
Severity: notification.SeverityWarning,
|
|
}
|
|
m3 := &sender.Message{
|
|
Subject: "test subject 3",
|
|
Body: "test body 3",
|
|
Severity: notification.SeverityError,
|
|
}
|
|
|
|
require.NoError(t, p.Send(ctx, m1)) // will be ignored
|
|
require.NoError(t, p.Send(ctx, m2))
|
|
require.NoError(t, p.Send(ctx, m3))
|
|
|
|
lines := strings.Split(strings.TrimSpace(buf.String()), "\n")
|
|
|
|
require.Equal(t,
|
|
[]string{
|
|
"NOTIFICATION:{\"subject\":\"test subject 2\",\"severity\":10,\"body\":\"test body 2\"}",
|
|
"NOTIFICATION:{\"subject\":\"test subject 3\",\"severity\":20,\"body\":\"test body 3\"}",
|
|
}, lines)
|
|
}
|