unpoller_unpoller/pkg/testutil/dep.go

67 lines
1.3 KiB
Go

package testutil
import (
"testing"
"github.com/unpoller/unifi/mocks"
"github.com/unpoller/unpoller/pkg/inputunifi"
"github.com/unpoller/unpoller/pkg/poller"
)
type TestRig struct {
MockServer *mocks.MockHTTPTestServer
Collector *poller.TestCollector
InputUnifi *inputunifi.InputUnifi
Controller *inputunifi.Controller
}
func NewTestSetup(t *testing.T) *TestRig {
srv := mocks.NewMockHTTPTestServer()
testCollector := poller.NewTestCollector(t)
enabled := true
controller := inputunifi.Controller{
SaveAnomal: &enabled,
SaveAlarms: &enabled,
SaveEvents: &enabled,
SaveIDS: &enabled,
SaveDPI: &enabled,
SaveRogue: &enabled,
SaveSites: &enabled,
URL: srv.Server.URL,
}
in := &inputunifi.InputUnifi{
Logger: testCollector.Logger,
Config: &inputunifi.Config{
Disable: false,
Default: controller,
Controllers: []*inputunifi.Controller{&controller},
},
}
testCollector.AddInput(&poller.InputPlugin{
Name: "unifi",
Input: in,
})
return &TestRig{
MockServer: srv,
Collector: testCollector,
InputUnifi: in,
Controller: &controller,
}
}
func (t *TestRig) Initialize() {
_ = t.InputUnifi.Initialize(t.Collector.Logger)
_, _ = t.InputUnifi.Metrics(nil)
_, _ = t.InputUnifi.Events(nil)
}
func (t *TestRig) Close() {
t.MockServer.Server.Close()
}
func PBool(v bool) *bool {
return &v
}