Files
query-orchestration/internal/query/parse_test.go
T

122 lines
3.2 KiB
Go
Raw Normal View History

2025-01-07 16:30:45 +00:00
package query_test
2024-12-24 12:47:40 +00:00
import (
2025-01-06 14:40:43 +00:00
"queryorchestration/internal/database"
2024-12-24 17:13:48 +00:00
"queryorchestration/internal/database/repository"
2025-01-06 14:40:43 +00:00
"queryorchestration/internal/query"
resultprocessor "queryorchestration/internal/query/result/processor"
2024-12-24 12:47:40 +00:00
"testing"
"github.com/google/uuid"
"github.com/jackc/pgx/v5/pgtype"
"github.com/stretchr/testify/assert"
)
2025-01-06 14:40:43 +00:00
func TestParseQuery(t *testing.T) {
2025-01-20 13:31:48 +00:00
cfg := "example"
2025-01-06 14:40:43 +00:00
q := &query.Query{
ID: uuid.New(),
Type: resultprocessor.TypeJsonExtractor,
2025-01-06 14:40:43 +00:00
ActiveVersion: int32(1),
LatestVersion: int32(2),
2025-01-20 13:31:48 +00:00
RequiredQueryIDs: &[]uuid.UUID{
2025-01-06 14:40:43 +00:00
uuid.New(),
},
2025-01-20 13:31:48 +00:00
Config: &cfg,
2024-12-24 12:47:40 +00:00
}
2025-01-06 14:40:43 +00:00
out := query.ParseQuery(q)
assert.EqualExportedValues(t, resultprocessor.Query{
2025-01-06 14:40:43 +00:00
ID: q.ID,
Type: q.Type,
Version: q.ActiveVersion,
RequiredQueryIDs: q.RequiredQueryIDs,
Config: q.Config,
}, *out)
2025-01-03 10:35:42 +00:00
}
func TestParseFullActiveQuery(t *testing.T) {
q := &repository.Fullactivequery{
2025-01-06 14:40:43 +00:00
ID: database.MustToDBUUID(uuid.New()),
Type: repository.QuerytypeContextFull,
Activeversion: int32(1),
Latestversion: int32(2),
Requiredids: []pgtype.UUID{
database.MustToDBUUID(uuid.New()),
},
Config: []byte("example"),
}
2024-12-24 17:13:48 +00:00
out, err := query.ParseFullActiveQuery(q)
assert.NoError(t, err)
2025-01-20 13:31:48 +00:00
bcfg := string(q.Config)
2025-01-06 14:40:43 +00:00
assert.EqualExportedValues(t, query.Query{
ID: database.MustToUUID(q.ID),
Type: resultprocessor.TypeContextFull,
2025-01-06 14:40:43 +00:00
ActiveVersion: q.Activeversion,
LatestVersion: q.Latestversion,
2025-01-20 13:31:48 +00:00
RequiredQueryIDs: &[]uuid.UUID{
2025-01-06 14:40:43 +00:00
database.MustToUUID(q.Requiredids[0]),
},
2025-01-20 13:31:48 +00:00
Config: &bcfg,
2025-01-06 14:40:43 +00:00
}, *out)
2024-12-24 12:47:40 +00:00
}
func TestFullActiveQueryEmpty(t *testing.T) {
dbQuery := &repository.Fullactivequery{
ID: database.MustToDBUUID(uuid.New()),
Type: repository.QuerytypeContextFull,
Activeversion: int32(1),
Latestversion: int32(2),
}
out, err := query.ParseFullActiveQuery(dbQuery)
assert.NoError(t, err)
assert.EqualExportedValues(t, query.Query{
ID: database.MustToUUID(dbQuery.ID),
Type: resultprocessor.TypeContextFull,
ActiveVersion: int32(1),
LatestVersion: int32(2),
}, *out)
}
func TestFullActiveQueryWithNullUUID(t *testing.T) {
dbQuery := &repository.Fullactivequery{
ID: database.MustToDBUUID(uuid.New()),
Type: repository.QuerytypeContextFull,
Activeversion: int32(1),
Latestversion: int32(2),
}
out, err := query.ParseFullActiveQuery(dbQuery)
assert.NoError(t, err)
assert.EqualExportedValues(t, query.Query{
ID: database.MustToUUID(dbQuery.ID),
Type: resultprocessor.TypeContextFull,
ActiveVersion: int32(1),
LatestVersion: int32(2),
}, *out)
}
func TestFullActiveQueryArray(t *testing.T) {
dbQueries := []*repository.Fullactivequery{
{
ID: database.MustToDBUUID(uuid.New()),
Type: repository.QuerytypeContextFull,
Activeversion: int32(1),
Latestversion: int32(2),
},
}
out, err := query.ParseFullActiveQueryArray(dbQueries)
assert.NoError(t, err)
assert.EqualExportedValues(t, []*query.Query{
{
ID: database.MustToUUID(dbQueries[0].ID),
Type: resultprocessor.TypeContextFull,
ActiveVersion: int32(1),
LatestVersion: int32(2),
},
}, out)
}