57 lines
1.4 KiB
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",
|
|
},
|
|
}
|
|
}
|