Files
query-orchestration/api/queryService/parse_test.go
T

93 lines
2.1 KiB
Go
Raw Normal View History

2025-01-15 19:45:51 +00:00
package queryservice
import (
"queryorchestration/internal/query"
queryprocessor "queryorchestration/internal/query/processor"
2025-01-15 19:45:51 +00:00
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
)
func TestParseQueries(t *testing.T) {
in := []*query.Query{
{
ID: uuid.New(),
Type: queryprocessor.TypeContextFull,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueryIDs: []uuid.UUID{
uuid.New(),
},
Config: "hey",
},
}
out, err := parseQueries(in)
assert.Nil(t, err)
assert.Len(t, out, len(in))
assert.ElementsMatch(t, []Query{
{
Id: in[0].ID.String(),
Type: CONTEXTFULL,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueries: []string{
in[0].RequiredQueryIDs[0].String(),
},
Config: &in[0].Config,
},
}, out)
}
func TestParseQuery(t *testing.T) {
in := &query.Query{
ID: uuid.New(),
Type: queryprocessor.TypeContextFull,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueryIDs: []uuid.UUID{
uuid.New(),
},
Config: "hey",
}
out, err := parseQuery(in)
assert.Nil(t, err)
assert.EqualExportedValues(t, Query{
Id: in.ID.String(),
Type: CONTEXTFULL,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueries: []string{
in.RequiredQueryIDs[0].String(),
},
Config: &in.Config,
},
*out)
}
func TestParseQueryType(t *testing.T) {
qt, err := parseQueryType(queryprocessor.TypeContextFull)
assert.Nil(t, err)
assert.Equal(t, CONTEXTFULL, qt)
qt, err = parseQueryType(queryprocessor.TypeJsonExtractor)
assert.Nil(t, err)
assert.Equal(t, JSONEXTRACTOR, qt)
_, err = parseQueryType(queryprocessor.Type(-1))
assert.NotNil(t, err)
}
func TestParseSpecQueryType(t *testing.T) {
qt, err := parseSpecQueryType(CONTEXTFULL)
assert.Nil(t, err)
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeContextFull), qt)
qt, err = parseSpecQueryType(JSONEXTRACTOR)
assert.Nil(t, err)
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeJsonExtractor), qt)
_, err = parseSpecQueryType("invalid")
assert.NotNil(t, err)
}