91 lines
3.3 KiB
Go
91 lines
3.3 KiB
Go
package document_test
|
|
|
|
import (
|
|
"queryorchestration/internal/database/repository"
|
|
queryprocessor "queryorchestration/internal/queryProcessor"
|
|
"testing"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestParseDBCollectorQuery(t *testing.T) {
|
|
dbResult := repository.GetCollectorQueriesRow{
|
|
Collectorid: pgtype.UUID{},
|
|
Queryid: pgtype.UUID{},
|
|
Requiredids: []pgtype.UUID{},
|
|
Type: repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor},
|
|
Queryversion: pgtype.Int4{},
|
|
}
|
|
value, err := queryprocessor.ParseDBCollectorQuery(&dbResult)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, uuid.Nil, value.ID)
|
|
assert.Equal(t, []uuid.UUID{}, value.RequiredQueryIDs)
|
|
assert.Equal(t, int32(0), value.Version)
|
|
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeJsonExtractor), value.Type)
|
|
|
|
dbResult.Type = repository.NullQuerytype{}
|
|
_, err = queryprocessor.ParseDBCollectorQuery(&dbResult)
|
|
assert.EqualError(t, err, "invalid database query type")
|
|
}
|
|
|
|
func TestParseDBNullType(t *testing.T) {
|
|
qType := repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor}
|
|
value, err := queryprocessor.ParseDBNullType(qType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeJsonExtractor), value)
|
|
|
|
qType = repository.NullQuerytype{}
|
|
_, err = queryprocessor.ParseDBNullType(qType)
|
|
assert.EqualError(t, err, "invalid database query type")
|
|
|
|
qType = repository.NullQuerytype{Valid: true}
|
|
_, err = queryprocessor.ParseDBNullType(qType)
|
|
assert.EqualError(t, err, "invalid database query type")
|
|
}
|
|
|
|
func TestParseDBType(t *testing.T) {
|
|
qType := repository.QuerytypeJsonExtractor
|
|
value, err := queryprocessor.ParseDBType(qType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeJsonExtractor), value)
|
|
|
|
qType = repository.QuerytypeContextFull
|
|
value, err = queryprocessor.ParseDBType(qType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, queryprocessor.Type(queryprocessor.TypeContextFull), value)
|
|
}
|
|
|
|
func TestToDBQueryType(t *testing.T) {
|
|
dbQueryType := queryprocessor.Type(queryprocessor.TypeJsonExtractor)
|
|
value, err := queryprocessor.ToDBQueryType(dbQueryType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, repository.Querytype(repository.QuerytypeJsonExtractor), value)
|
|
|
|
dbQueryType = queryprocessor.Type(-1)
|
|
_, err = queryprocessor.ToDBQueryType(dbQueryType)
|
|
assert.EqualError(t, err, "invalid database query type")
|
|
|
|
dbQueryType = queryprocessor.Type(queryprocessor.TypeContextFull)
|
|
value, err = queryprocessor.ToDBQueryType(dbQueryType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, repository.Querytype(repository.QuerytypeContextFull), value)
|
|
}
|
|
|
|
func TestToDBNullQueryType(t *testing.T) {
|
|
dbQueryType := queryprocessor.Type(queryprocessor.TypeJsonExtractor)
|
|
value, err := queryprocessor.ToDBNullQueryType(dbQueryType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor}, value)
|
|
|
|
dbQueryType = queryprocessor.Type(-1)
|
|
_, err = queryprocessor.ToDBNullQueryType(dbQueryType)
|
|
assert.EqualError(t, err, "invalid database query type")
|
|
|
|
dbQueryType = queryprocessor.Type(queryprocessor.TypeContextFull)
|
|
value, err = queryprocessor.ToDBNullQueryType(dbQueryType)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeContextFull}, value)
|
|
}
|