2025-01-06 15:31:39 +00:00
|
|
|
package database_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"queryorchestration/internal/database"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/google/uuid"
|
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
)
|
|
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
func TestToDBUUID(t *testing.T) {
|
2025-01-06 15:31:39 +00:00
|
|
|
id := uuid.New()
|
|
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
dbID, err := database.ToDBUUID(id)
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
assert.True(t, dbID.Valid)
|
2025-01-06 15:31:39 +00:00
|
|
|
assert.Equal(t, id.String(), uuid.UUID(dbID.Bytes).String())
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
func TestToDBUUIDNil(t *testing.T) {
|
|
|
|
|
id := uuid.Nil
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
dbID, err := database.ToDBUUID(id)
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
assert.False(t, dbID.Valid)
|
|
|
|
|
assert.Equal(t, id.String(), uuid.UUID(dbID.Bytes).String())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestToDBUUIDArray(t *testing.T) {
|
|
|
|
|
ids := []uuid.UUID{uuid.Nil, uuid.New()}
|
|
|
|
|
|
|
|
|
|
dbIDs, err := database.ToDBUUIDArray(ids)
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-20 13:31:48 +00:00
|
|
|
|
|
|
|
|
assert.Len(t, dbIDs, 1)
|
|
|
|
|
assert.ElementsMatch(t, []pgtype.UUID{database.MustToDBUUID(ids[1])}, dbIDs)
|
2025-01-06 15:31:39 +00:00
|
|
|
}
|
|
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
func TestToUUID(t *testing.T) {
|
|
|
|
|
dbID, err := database.ToDBUUID(uuid.New())
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
id, err := database.ToUUID(dbID)
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
|
|
|
|
assert.Equal(t, id.String(), uuid.UUID(dbID.Bytes).String())
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
func TestToUUIDArray(t *testing.T) {
|
|
|
|
|
ogIDs := []uuid.UUID{uuid.Nil, uuid.New()}
|
|
|
|
|
dbIDs := database.MustToDBUUIDArray(ogIDs)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
ids, err := database.ToUUIDArray(dbIDs)
|
2025-02-03 17:30:50 +00:00
|
|
|
assert.NoError(t, err)
|
2025-01-06 15:31:39 +00:00
|
|
|
|
2025-01-20 13:31:48 +00:00
|
|
|
assert.Len(t, ids, 1)
|
|
|
|
|
assert.ElementsMatch(t, []uuid.UUID{ogIDs[1]}, ids)
|
2025-01-06 15:31:39 +00:00
|
|
|
}
|