package document_test import ( "queryorchestration/internal/database/repository" "queryorchestration/internal/query" "testing" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" "github.com/stretchr/testify/assert" ) func TestParseDBQuery(t *testing.T) { dbResult := repository.GetCollectorQueriesRow{ Collectorid: pgtype.UUID{}, Queryid: pgtype.UUID{}, Requiredqueryid: pgtype.UUID{}, Type: repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor}, Queryversion: pgtype.Int4{}, } value, err := query.ParseDBQuery(&dbResult) 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{} _, err = query.ParseDBQuery(&dbResult) assert.EqualError(t, err, "invalid database query type") } func TestParseDBType(t *testing.T) { qType := repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeJsonExtractor} value, err := query.ParseDBType(qType) assert.Nil(t, err) assert.Equal(t, query.Type(query.TypeJsonExtractor), value) qType = repository.NullQuerytype{} _, err = query.ParseDBType(qType) assert.EqualError(t, err, "invalid database query type") qType = repository.NullQuerytype{Valid: true} _, err = query.ParseDBType(qType) assert.EqualError(t, err, "invalid database query type") qType = repository.NullQuerytype{Valid: true, Querytype: repository.QuerytypeContextFull} value, err = query.ParseDBType(qType) assert.Nil(t, err) assert.Equal(t, query.Type(query.TypeContextFull), value) } 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") 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) }