Files
query-orchestration/api/queryAPI/parse_test.go
T
Michael McGuinness 555b6d420b Merged in feature/docresult (pull request #105)
Document Result Endpoint

* testing

* cleantesting

* progress

* query

* lint

* readme

* dockerclient

* api

* passtest

* tests

* test
2025-03-17 18:14:15 +00:00

143 lines
3.2 KiB
Go

package queryapi
import (
"testing"
"queryorchestration/internal/client"
"queryorchestration/internal/query"
resultprocessor "queryorchestration/internal/query/result/processor"
"github.com/google/uuid"
"github.com/oapi-codegen/runtime/types"
"github.com/stretchr/testify/assert"
)
func TestParseQueries(t *testing.T) {
cfg := "hey"
in := []*query.Query{
{
ID: uuid.New(),
Type: resultprocessor.TypeContextFull,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueryIDs: &[]uuid.UUID{
uuid.New(),
},
Config: &cfg,
},
}
out, err := parseQueries(in)
assert.NoError(t, err)
assert.Len(t, out, len(in))
assert.ElementsMatch(t, []Query{
{
Id: in[0].ID,
Type: CONTEXTFULL,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueries: &[]types.UUID{
(*in[0].RequiredQueryIDs)[0],
},
Config: in[0].Config,
},
}, out)
}
func TestParseQuery(t *testing.T) {
cfg := "hey"
in := &query.Query{
ID: uuid.New(),
Type: resultprocessor.TypeContextFull,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueryIDs: &[]uuid.UUID{
uuid.New(),
},
Config: &cfg,
}
out, err := parseQuery(in)
assert.NoError(t, err)
assert.EqualExportedValues(t, Query{
Id: in.ID,
Type: CONTEXTFULL,
ActiveVersion: 1,
LatestVersion: 2,
RequiredQueries: &[]types.UUID{
(*in.RequiredQueryIDs)[0],
},
Config: in.Config,
},
*out)
}
func TestParseQueryMinimal(t *testing.T) {
in := &query.Query{
ID: uuid.New(),
Type: resultprocessor.TypeContextFull,
ActiveVersion: 1,
LatestVersion: 2,
}
out, err := parseQuery(in)
assert.NoError(t, err)
assert.EqualExportedValues(t, Query{
Id: in.ID,
Type: CONTEXTFULL,
ActiveVersion: 1,
LatestVersion: 2,
},
*out)
}
func TestParseQueryType(t *testing.T) {
qt, err := parseQueryType(resultprocessor.TypeContextFull)
assert.NoError(t, err)
assert.Equal(t, CONTEXTFULL, qt)
qt, err = parseQueryType(resultprocessor.TypeJsonExtractor)
assert.NoError(t, err)
assert.Equal(t, JSONEXTRACTOR, qt)
_, err = parseQueryType(resultprocessor.Type(-1))
assert.Error(t, err)
}
func TestParseSpecQueryType(t *testing.T) {
qt, err := parseSpecQueryType(CONTEXTFULL)
assert.NoError(t, err)
assert.Equal(t, resultprocessor.Type(resultprocessor.TypeContextFull), qt)
qt, err = parseSpecQueryType(JSONEXTRACTOR)
assert.NoError(t, err)
assert.Equal(t, resultprocessor.Type(resultprocessor.TypeJsonExtractor), qt)
_, err = parseSpecQueryType("invalid")
assert.Error(t, err)
}
func TestParseStringToUUIDArray(t *testing.T) {
ids := []uuid.UUID{uuid.New()}
out, err := parseStringToUUIDArray(&[]string{ids[0].String()})
assert.NoError(t, err)
assert.ElementsMatch(t, ids, *out)
_, err = parseStringToUUIDArray(&[]string{"invalid_uuid"})
assert.Error(t, err)
out, err = parseStringToUUIDArray(nil)
assert.NoError(t, err)
assert.Nil(t, out)
}
func TestParseSpecClientStatus(t *testing.T) {
qt := parseClientStatus(client.IN_SYNC)
assert.Equal(t, INSYNC, qt)
qt = parseClientStatus(client.NOT_SYNCED)
assert.Equal(t, NOTSYNCED, qt)
qt = parseClientStatus(client.NOT_SYNCING)
assert.Equal(t, NOTSYNCING, qt)
qt = parseClientStatus("invalid")
assert.Equal(t, NOTSYNCED, qt)
}