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

75 lines
2.5 KiB
Go
Raw Normal View History

2024-12-24 12:47:40 +00:00
package document_test
import (
2024-12-24 17:13:48 +00:00
"queryorchestration/internal/database/repository"
"queryorchestration/internal/query"
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-03 10:35:42 +00:00
func TestParseDBQueryRow(t *testing.T) {
2024-12-24 12:47:40 +00:00
dbResult := repository.GetCollectorQueriesRow{
Collectorid: pgtype.UUID{},
Queryid: pgtype.UUID{},
Requiredqueryid: pgtype.UUID{},
Type: repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor},
Queryversion: pgtype.Int4{},
}
2025-01-03 09:43:18 +00:00
value, err := query.ParseDBQueryRow(&dbResult)
2024-12-24 12:47:40 +00:00
assert.Nil(t, err)
assert.Equal(t, uuid.Nil, value.ID)
assert.Equal(t, uuid.Nil, value.RequiredQueryID)
assert.Equal(t, int32(0), value.Version)
assert.Equal(t, query.Type(query.TypeJsonExtractor), value.Type)
dbResult.Type = repository.NullQuerytype{}
2025-01-03 09:43:18 +00:00
_, err = query.ParseDBQueryRow(&dbResult)
2024-12-24 12:47:40 +00:00
assert.EqualError(t, err, "invalid database query type")
}
2025-01-03 10:35:42 +00:00
func TestParseDBNullType(t *testing.T) {
2024-12-24 12:47:40 +00:00
qType := repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor}
2025-01-03 10:35:42 +00:00
value, err := query.ParseDBNullType(qType)
2024-12-24 12:47:40 +00:00
assert.Nil(t, err)
assert.Equal(t, query.Type(query.TypeJsonExtractor), value)
qType = repository.NullQuerytype{}
2025-01-03 10:35:42 +00:00
_, err = query.ParseDBNullType(qType)
2024-12-24 12:47:40 +00:00
assert.EqualError(t, err, "invalid database query type")
qType = repository.NullQuerytype{Valid: true}
2025-01-03 10:35:42 +00:00
_, err = query.ParseDBNullType(qType)
2024-12-24 12:47:40 +00:00
assert.EqualError(t, err, "invalid database query type")
2025-01-03 10:35:42 +00:00
}
func TestParseDBType(t *testing.T) {
qType := repository.QuerytypeJsonExtractor
value, err := query.ParseDBType(qType)
assert.Nil(t, err)
assert.Equal(t, query.Type(query.TypeJsonExtractor), value)
2024-12-24 17:13:48 +00:00
2025-01-03 10:35:42 +00:00
qType = repository.QuerytypeContextFull
2024-12-24 17:13:48 +00:00
value, err = query.ParseDBType(qType)
assert.Nil(t, err)
assert.Equal(t, query.Type(query.TypeContextFull), value)
2024-12-24 12:47:40 +00:00
}
func TestToDBQueryType(t *testing.T) {
dbQueryType := query.Type(query.TypeJsonExtractor)
value, err := query.ToDBQueryType(dbQueryType)
assert.Nil(t, err)
assert.Equal(t, repository.NullQuerytype{Querytype: repository.QuerytypeJsonExtractor, Valid: true}, value)
dbQueryType = query.Type(-1)
_, err = query.ToDBQueryType(dbQueryType)
assert.EqualError(t, err, "invalid database query type")
2024-12-24 17:13:48 +00:00
dbQueryType = query.Type(query.TypeContextFull)
value, err = query.ToDBQueryType(dbQueryType)
assert.Nil(t, err)
assert.Equal(t, repository.NullQuerytype{Querytype: repository.QuerytypeContextFull, Valid: true}, value)
2024-12-24 12:47:40 +00:00
}