This repository has been archived on 2023-04-18. You can view files and clone it, but cannot push or open issues or pull requests.
notificationarr/internal/service/radarr_test.go

57 lines
1.4 KiB
Go

package service_test
import (
"context"
"math/rand"
"testing"
"time"
"gitea.dwysokinski.me/Kichiyaki/notificationarr/internal/domain"
"gitea.dwysokinski.me/Kichiyaki/notificationarr/internal/service"
"gitea.dwysokinski.me/Kichiyaki/notificationarr/internal/service/internal/mock"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
)
func TestRadarr_Process(t *testing.T) {
t.Parallel()
t.Run("OK", func(t *testing.T) {
t.Parallel()
for _, evType := range [...]domain.RadarrEventType{
domain.RadarrEventTypeDownload,
domain.RadarrEventTypeTest,
} {
t.Run("event type="+evType.String(), func(t *testing.T) {
t.Parallel()
publisher := &mock.FakePublisher{}
publisher.PublishReturns(nil)
payload := generateRadarrWebhookPayload(evType)
err := service.NewRadarr(publisher).Process(context.Background(), payload)
assert.NoError(t, err)
_, title, msg := publisher.PublishArgsForCall(0)
assert.Equal(t, "New movie available (Radarr)", title)
assert.Equal(t, payload.Movie.Title, msg)
})
}
})
}
func generateRadarrWebhookPayload(ev domain.RadarrEventType) domain.RadarrWebhookPayload {
s := rand.NewSource(time.Now().UnixNano())
r := rand.New(s)
return domain.RadarrWebhookPayload{
EventType: ev,
Movie: domain.RadarrMovie{
ID: r.Int63(),
Title: uuid.NewString(),
ReleaseDate: "1970-01-01",
},
}
}