Files
query-orchestration/api/queryAPI/collector_test.go
T

110 lines
2.7 KiB
Go
Raw Normal View History

package queryapi_test
2025-01-15 19:45:51 +00:00
import (
"fmt"
2025-01-15 19:45:51 +00:00
"net/http"
2025-03-05 12:05:46 +00:00
"testing"
queryapi "queryorchestration/api/queryAPI"
"queryorchestration/internal/collector"
collectorset "queryorchestration/internal/collector/set"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/serviceconfig"
"queryorchestration/internal/test"
queuemock "queryorchestration/mocks/queue"
2025-01-15 19:45:51 +00:00
"github.com/aws/aws-sdk-go-v2/service/sqs"
2025-01-15 19:45:51 +00:00
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
2025-01-15 19:45:51 +00:00
)
func TestSetCollector(t *testing.T) {
t.Parallel()
cfg := &ClientConfig{}
cfg.ClientSyncURL = "example"
net := test.GetNetwork(t)
test.CreateDB(t, cfg, net, &test.CreateDatabaseConfig{})
mockSQS := queuemock.NewMockSQSClient(t)
cfg.QueueClient = mockSQS
2025-01-23 14:56:20 +00:00
id := "clientid"
err := cfg.GetDBQueries().CreateClient(t.Context(), &repository.CreateClientParams{
Clientid: id,
Name: "client_name",
})
require.NoError(t, err)
queryId, err := cfg.GetDBQueries().CreateQuery(t.Context(), repository.QuerytypeContextFull)
require.NoError(t, err)
av := int32(1)
cv := int64(1)
body := queryapi.CollectorSet{
ActiveVersion: &av,
MinimumCleanerVersion: &cv,
Fields: &[]queryapi.CollectorField{
{
Name: "a",
QueryId: queryId,
},
},
2025-01-23 14:56:20 +00:00
}
ctx, rec := createContextWithBody(t, body)
2025-01-15 19:45:51 +00:00
cons := queryapi.NewControllers(&queryapi.Services{
CollectorSet: collectorset.New(cfg, &collectorset.Services{
Collector: collector.New(cfg),
2025-01-23 14:56:20 +00:00
}),
})
mockSQS.EXPECT().
SendMessage(
mock.Anything,
mock.MatchedBy(func(in *sqs.SendMessageInput) bool {
return *in.QueueUrl == cfg.GetClientSyncURL() && *in.MessageBody == fmt.Sprintf("{\"id\":\"%s\"}", id)
}),
mock.Anything,
).
Return(&sqs.SendMessageOutput{}, nil)
err = cons.SetCollectorByClientId(ctx, id)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-15 19:45:51 +00:00
assert.Equal(t, http.StatusOK, rec.Code)
2025-01-23 14:56:20 +00:00
assert.Empty(t, rec.Body.String())
2025-01-15 19:45:51 +00:00
}
func TestGetCollectorByClientId(t *testing.T) {
t.Parallel()
cfg := &serviceconfig.BaseConfig{}
net := test.GetNetwork(t)
test.CreateDB(t, cfg, net, &test.CreateDatabaseConfig{})
2025-01-15 19:45:51 +00:00
cons := queryapi.NewControllers(&queryapi.Services{
Collector: collector.New(cfg),
})
2025-01-15 19:45:51 +00:00
id := "clientid"
err := cfg.GetDBQueries().CreateClient(t.Context(), &repository.CreateClientParams{
Clientid: id,
Name: "client_name",
})
require.NoError(t, err)
ctx, rec := createContext(t)
err = cons.GetCollectorByClientId(ctx, id)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-15 19:45:51 +00:00
assert.Equal(t, http.StatusOK, rec.Code)
assertBody(t, rec, queryapi.Collector{
ClientId: id,
MinimumCleanerVersion: 0,
MinimumTextVersion: 0,
ActiveVersion: 0,
LatestVersion: 0,
Fields: []queryapi.CollectorField{},
})
2025-01-15 19:45:51 +00:00
}