core/internal/domain/server_message_payloads_tes...

53 lines
1.5 KiB
Go

package domain_test
import (
"slices"
"testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain/domaintest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNewSyncServersCmdPayload(t *testing.T) {
t.Parallel()
version := domaintest.NewVersion(t)
payload, err := domain.NewSyncServersCmdPayload(version.Code(), version.URL())
require.NoError(t, err)
assert.Equal(t, version.Code(), payload.VersionCode())
assert.Equal(t, version.URL(), payload.URL())
}
func TestNewServerSyncedEventPayload(t *testing.T) {
t.Parallel()
server := domaintest.NewServer(t)
payload, err := domain.NewServerSyncedEventPayload(server.Key(), server.URL(), server.VersionCode())
require.NoError(t, err)
assert.Equal(t, server.Key(), payload.Key())
assert.Equal(t, server.URL(), payload.URL())
assert.Equal(t, server.VersionCode(), payload.VersionCode())
}
func TestNewServerSyncedEventPayloads(t *testing.T) {
t.Parallel()
versionCode := domaintest.RandVersionCode()
servers := domain.BaseServers{
domaintest.NewBaseServer(t),
domaintest.NewBaseServer(t),
}
payloads, err := domain.NewServerSyncedEventPayloads(servers, versionCode)
require.NoError(t, err)
for _, s := range servers {
assert.True(t, slices.ContainsFunc(payloads, func(payload domain.ServerSyncedEventPayload) bool {
return payload.Key() == s.Key() && payload.VersionCode() == versionCode && payload.URL() == s.URL()
}))
}
}