67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package unittest
 | |
| 
 | |
| 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
 | |
| }
 |