Merged in feature/docresult (pull request #105)
Document Result Endpoint * testing * cleantesting * progress * query * lint * readme * dockerclient * api * passtest * tests * test
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user