Files
query-orchestration/internal/test/runner.go
T
Michael McGuinness 752fb2e2c0 Merged in feature/chc_1 (pull request #120)
Text Extraction Clean Up + Parallelization

* merged_Call

* directchildren

* bitofimprovements

* go

* parallel

* fixfullsuite

* pondforconcurrency

* comments

* muchdone

* bitsofclean

* stabilisedtests

* snappy

* threadpooltests

* childelements

* testspassed
2025-04-25 17:02:50 +00:00

157 lines
4.8 KiB
Go

package test
import (
"context"
"testing"
clientsyncrunner "queryorchestration/api/clientSyncRunner"
doccleanrunner "queryorchestration/api/docCleanRunner"
docinitrunner "queryorchestration/api/docInitRunner"
docsyncrunner "queryorchestration/api/docSyncRunner"
doctextrunner "queryorchestration/api/docTextRunner"
queryrunner "queryorchestration/api/queryRunner"
querysyncrunner "queryorchestration/api/querySyncRunner"
queryversionsyncrunner "queryorchestration/api/queryVersionSyncRunner"
storeeventrunner "queryorchestration/api/storeEventRunner"
"queryorchestration/internal/serviceconfig"
"queryorchestration/internal/serviceconfig/queue/clientsync"
"queryorchestration/internal/serviceconfig/queue/documentclean"
"queryorchestration/internal/serviceconfig/queue/documentinit"
"queryorchestration/internal/serviceconfig/queue/documentsync"
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
"queryorchestration/internal/serviceconfig/queue/query"
"queryorchestration/internal/serviceconfig/queue/querysync"
"queryorchestration/internal/serviceconfig/queue/queryversionsync"
"queryorchestration/internal/serviceconfig/queue/storeevent"
)
type RunnerName string
const (
StoreEventRunnerName RunnerName = storeeventrunner.Name
DocInitRunnerName RunnerName = docinitrunner.Name
DocSyncRunnerName RunnerName = docsyncrunner.Name
DocCleanRunnerName RunnerName = doccleanrunner.Name
DocTextRunnerName RunnerName = doctextrunner.Name
QuerySyncRunnerName RunnerName = querysyncrunner.Name
QueryRunnerName RunnerName = queryrunner.Name
ClientSyncRunnerName RunnerName = clientsyncrunner.Name
QueryVersionSyncRunnerName RunnerName = queryversionsyncrunner.Name
)
type RunnerEnv string
const (
StoreEventRunnerEnv RunnerEnv = storeevent.EnvName
DocInitRunnerEnv RunnerEnv = documentinit.EnvName
DocSyncRunnerEnv RunnerEnv = documentsync.EnvName
DocCleanRunnerEnv RunnerEnv = documentclean.EnvName
DocTextRunnerEnv RunnerEnv = documenttexttrigger.EnvName
QuerySyncRunnerEnv RunnerEnv = querysync.EnvName
QueryRunnerEnv RunnerEnv = query.EnvName
ClientSyncRunnerEnv RunnerEnv = clientsync.EnvName
QueryVersionSyncRunnerEnv RunnerEnv = queryversionsync.EnvName
)
type Runner struct {
Name RunnerName
DownstreamQueues []RunnerName
}
func GetRunnerEnvFromName(name RunnerName) RunnerEnv {
switch name {
case StoreEventRunnerName:
return StoreEventRunnerEnv
case DocSyncRunnerName:
return DocSyncRunnerEnv
case DocCleanRunnerName:
return DocCleanRunnerEnv
case DocTextRunnerName:
return DocTextRunnerEnv
case QuerySyncRunnerName:
return QuerySyncRunnerEnv
case QueryRunnerName:
return QueryRunnerEnv
case ClientSyncRunnerName:
return ClientSyncRunnerEnv
case QueryVersionSyncRunnerName:
return QueryVersionSyncRunnerEnv
}
return DocInitRunnerEnv
}
type RunnerConfig struct {
Runner Runner
MockHTTP string
}
func CreateRunner(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, network string, config *RunnerConfig) (*Container, func()) {
env := map[string]string{}
url := GetQueueURL(t, cfg, config.Runner.Name)
env["QUEUE_URL"] = url
c, cleanup := createContainer(t, ctx, network, &containerConfig{
Name: string(config.Runner.Name),
DownstreamQueues: config.Runner.DownstreamQueues,
Cfg: cfg,
Env: env,
MockHTTP: config.MockHTTP,
WaitForMsg: "Listening to queue",
})
return &Container{
Container: c,
URI: url,
}, cleanup
}
var StoreEventRunner = Runner{
Name: StoreEventRunnerName,
DownstreamQueues: []RunnerName{DocInitRunnerName},
}
var DocInitRunner = Runner{
Name: DocInitRunnerName,
DownstreamQueues: []RunnerName{DocSyncRunnerName},
}
var DocSyncRunner = Runner{
Name: DocSyncRunnerName,
DownstreamQueues: []RunnerName{DocCleanRunnerName},
}
var DocCleanRunner = Runner{
Name: DocCleanRunnerName,
DownstreamQueues: []RunnerName{DocTextRunnerName},
}
var DocTextRunner = Runner{
Name: DocTextRunnerName,
DownstreamQueues: []RunnerName{QuerySyncRunnerName},
}
var QuerySyncRunner = Runner{
Name: QuerySyncRunnerName,
DownstreamQueues: []RunnerName{QueryRunnerName},
}
var QueryRunner = Runner{
Name: QueryRunnerName,
DownstreamQueues: []RunnerName{QueryRunnerName},
}
var ClientSyncRunner = Runner{
Name: ClientSyncRunnerName,
DownstreamQueues: []RunnerName{DocSyncRunnerName},
}
var QueryVersionSyncRunner = Runner{
Name: QueryVersionSyncRunnerName,
DownstreamQueues: []RunnerName{ClientSyncRunnerName},
}
var runners = []Runner{
StoreEventRunner,
DocInitRunner,
DocSyncRunner,
DocCleanRunner,
DocTextRunner,
QuerySyncRunner,
QueryRunner,
ClientSyncRunner,
QueryVersionSyncRunner,
}