81e7223560
Text Extraction * bases * go * splitting * structure * movetoasync * movetoasync * settinguptrigger * reorder * storevent * standardisepollingvalidation * unittests * fixlint * fixlint * awscfg * generatesample * followthrough * tests * clena * store * externalidcleanup * clientid * local * baseunittests * putobjecttests * tests
172 lines
5.4 KiB
Go
172 lines
5.4 KiB
Go
package test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
clientsyncrunner "queryorchestration/api/clientSyncRunner"
|
|
doccleanrunner "queryorchestration/api/docCleanRunner"
|
|
docinitrunner "queryorchestration/api/docInitRunner"
|
|
docsyncrunner "queryorchestration/api/docSyncRunner"
|
|
doctextprocessrunner "queryorchestration/api/docTextProcessRunner"
|
|
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/documenttextprocess"
|
|
"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"
|
|
|
|
"github.com/testcontainers/testcontainers-go"
|
|
)
|
|
|
|
type RunnerName string
|
|
|
|
const (
|
|
StoreEventRunnerName RunnerName = storeeventrunner.Name
|
|
DocInitRunnerName RunnerName = docinitrunner.Name
|
|
DocSyncRunnerName RunnerName = docsyncrunner.Name
|
|
DocCleanRunnerName RunnerName = doccleanrunner.Name
|
|
DocTextRunnerName RunnerName = doctextrunner.Name
|
|
DocTextProcessRunnerName RunnerName = doctextprocessrunner.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
|
|
DocTextProcessRunnerEnv RunnerEnv = documenttextprocess.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 DocTextProcessRunnerName:
|
|
return DocTextProcessRunnerEnv
|
|
case QuerySyncRunnerName:
|
|
return QuerySyncRunnerEnv
|
|
case QueryRunnerName:
|
|
return QueryRunnerEnv
|
|
case ClientSyncRunnerName:
|
|
return ClientSyncRunnerEnv
|
|
case QueryVersionSyncRunnerName:
|
|
return QueryVersionSyncRunnerEnv
|
|
}
|
|
return DocInitRunnerEnv
|
|
}
|
|
|
|
type RunnerConfig struct {
|
|
Runner Runner
|
|
Network *testcontainers.DockerNetwork
|
|
MockHTTP string
|
|
}
|
|
|
|
func CreateRunner(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, config *RunnerConfig) (*Container, func()) {
|
|
env := map[string]string{}
|
|
url := GetQueueURL(cfg, config.Runner.Name)
|
|
env["QUEUE_URL"] = url
|
|
|
|
c, cleanup := createContainer(t, ctx, &containerConfig{
|
|
Network: config.Network,
|
|
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, DocTextProcessRunnerName},
|
|
}
|
|
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 DocTextProcessRunner = Runner{
|
|
Name: DocTextProcessRunnerName,
|
|
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,
|
|
DocTextProcessRunner,
|
|
QuerySyncRunner,
|
|
QueryRunner,
|
|
ClientSyncRunner,
|
|
QueryVersionSyncRunner,
|
|
}
|