testutil

package
v1.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FakePolicy added in v1.2.4

type FakePolicy struct {
	ID      string
	Enabled bool
	Name    string
	Action  string
	SrcZone string
	DstZone string
}

FakePolicy is used with AddPolicy.

type FakeRequest added in v1.2.4

type FakeRequest struct {
	Method string
	Path   string
	Body   []byte
	Query  map[string][]string
}

FakeRequest captures one HTTP request for assertion.

type FakeTMLItem added in v1.2.4

type FakeTMLItem struct {
	Type  string
	Value interface{}
}

FakeTMLItem is an item used with AddTML.

type FakeUnifiServer added in v1.2.4

type FakeUnifiServer struct {
	// contains filtered or unexported fields
}

FakeUnifiServer is a stateful HTTP server emulating the UniFi Network API. All exported methods are safe for concurrent use.

func NewFakeUnifiServer added in v1.2.4

func NewFakeUnifiServer() *FakeUnifiServer

NewFakeUnifiServer creates a fake server with a fixed API key.

func NewFakeUnifiServerWithAuth added in v1.2.4

func NewFakeUnifiServerWithAuth(username, password string) *FakeUnifiServer

NewFakeUnifiServerWithAuth creates a fake server requiring username/password login. API key auth is disabled (empty key).

func (*FakeUnifiServer) APIKey added in v1.2.4

func (s *FakeUnifiServer) APIKey() string

APIKey returns the valid API key for this server.

func (*FakeUnifiServer) AddGroup added in v1.2.4

func (s *FakeUnifiServer) AddGroup(siteRef, id, name, groupType string, members []string)

AddGroup adds a legacy firewall group (keyed by site internalReference).

func (*FakeUnifiServer) AddPolicy added in v1.2.4

func (s *FakeUnifiServer) AddPolicy(siteID string, p FakePolicy)

AddPolicy adds a zone policy to a site (keyed by site UUID).

func (*FakeUnifiServer) AddRule added in v1.2.4

func (s *FakeUnifiServer) AddRule(siteRef, id, name string, enabled bool, ruleset, action string, index int)

AddRule adds a legacy firewall rule (keyed by site internalReference).

func (*FakeUnifiServer) AddSite added in v1.2.4

func (s *FakeUnifiServer) AddSite(internalRef, id, displayName string)

AddSite adds a site. internalRef is the "default" style name; id is the UUID.

func (*FakeUnifiServer) AddTML added in v1.2.4

func (s *FakeUnifiServer) AddTML(siteID, id, tmlType, name string, items []FakeTMLItem)

AddTML adds a TML to a site (keyed by site UUID).

func (*FakeUnifiServer) AddZone added in v1.2.4

func (s *FakeUnifiServer) AddZone(siteID, id, name string)

AddZone adds a zone to a site (keyed by site UUID).

func (*FakeUnifiServer) ClearFaults added in v1.2.4

func (s *FakeUnifiServer) ClearFaults()

ClearFaults removes all pending fault and rate-limit injections.

func (*FakeUnifiServer) Close added in v1.2.4

func (s *FakeUnifiServer) Close()

Close shuts down the server.

func (*FakeUnifiServer) InjectFault added in v1.2.4

func (s *FakeUnifiServer) InjectFault(method, pathPrefix string, statusCode int)

InjectFault registers a one-shot fault: the first request whose "METHOD /path" has pathPrefix as a prefix will receive statusCode.

func (*FakeUnifiServer) InjectRateLimit added in v1.2.4

func (s *FakeUnifiServer) InjectRateLimit(method, pathPrefix string, retryAfterSec int)

InjectRateLimit registers a one-shot 429 response with a configurable Retry-After header. Unlike InjectFault, the retry delay is explicit.

func (*FakeUnifiServer) LastBody added in v1.2.4

func (s *FakeUnifiServer) LastBody(method, pathPrefix string) []byte

LastBody returns the body of the last request matching method+pathPrefix.

func (*FakeUnifiServer) LastCSRFToken added in v1.2.4

func (s *FakeUnifiServer) LastCSRFToken() string

LastCSRFToken returns the most recently issued CSRF token.

func (*FakeUnifiServer) Requests added in v1.2.4

func (s *FakeUnifiServer) Requests() []FakeRequest

Requests returns a copy of all captured requests.

func (*FakeUnifiServer) RequestsMatching added in v1.2.4

func (s *FakeUnifiServer) RequestsMatching(method, pathPrefix string) []FakeRequest

RequestsMatching returns captured requests whose method and path match.

func (*FakeUnifiServer) Reset added in v1.2.4

func (s *FakeUnifiServer) Reset()

Reset clears all data state (sites, zones, groups, rules, TMLs, policies, ordering, requests, faults, rateLimits, nextID) while preserving auth credentials (validAPIKey, username, password, sessions, csrfToken). Essential for test isolation within a single server instance.

func (*FakeUnifiServer) ServeHTTP added in v1.2.4

func (s *FakeUnifiServer) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*FakeUnifiServer) SetOrdering added in v1.2.4

func (s *FakeUnifiServer) SetOrdering(siteID, srcZoneID, dstZoneID string, ordering controller.PolicyOrdering)

SetOrdering pre-populates the policy ordering for a site/zone pair. Equivalent to sending a SetPolicyOrdering request without going through HTTP.

func (*FakeUnifiServer) URL added in v1.2.4

func (s *FakeUnifiServer) URL() string

URL returns the base URL of the fake server.

type MockController

type MockController struct {
	// contains filtered or unexported fields
}

MockController implements controller.Controller for testing. All methods are safe for concurrent use.

func NewMockController

func NewMockController() *MockController

NewMockController returns a zero-state MockController ready for use.

func (*MockController) Calls

func (m *MockController) Calls(method string) int

Calls returns the total number of times the named method was called.

func (*MockController) Close

func (m *MockController) Close() error

func (*MockController) CreateFirewallGroup

func (m *MockController) CreateFirewallGroup(ctx context.Context, site string, g controller.FirewallGroup) (controller.FirewallGroup, error)

func (*MockController) CreateFirewallRule

func (m *MockController) CreateFirewallRule(ctx context.Context, site string, r controller.FirewallRule) (controller.FirewallRule, error)

func (*MockController) CreateTrafficMatchingList

func (m *MockController) CreateTrafficMatchingList(ctx context.Context, site string, list controller.TrafficMatchingList) (controller.TrafficMatchingList, error)

func (*MockController) CreateZonePolicy

func (m *MockController) CreateZonePolicy(ctx context.Context, site string, p controller.ZonePolicy) (controller.ZonePolicy, error)

func (*MockController) DeleteFirewallGroup

func (m *MockController) DeleteFirewallGroup(ctx context.Context, site string, id string) error

func (*MockController) DeleteFirewallRule

func (m *MockController) DeleteFirewallRule(ctx context.Context, site string, id string) error

func (*MockController) DeleteTrafficMatchingList

func (m *MockController) DeleteTrafficMatchingList(ctx context.Context, site string, id string) error

func (*MockController) DeleteZonePolicy

func (m *MockController) DeleteZonePolicy(ctx context.Context, site string, id string) error

func (*MockController) DiscoverSites added in v1.2.0

func (m *MockController) DiscoverSites(ctx context.Context) ([]string, error)

func (*MockController) DiscoverZones

func (m *MockController) DiscoverZones(ctx context.Context, site string) ([]controller.Zone, error)

func (*MockController) GetLastOrdering added in v1.1.7

func (m *MockController) GetLastOrdering(site, srcZoneID, dstZoneID string) controller.PolicyOrdering

func (*MockController) GetPolicyOrdering added in v1.1.7

func (m *MockController) GetPolicyOrdering(ctx context.Context, site, srcZoneID, dstZoneID string) (controller.PolicyOrdering, error)

func (*MockController) GetSiteID

func (m *MockController) GetSiteID(ctx context.Context, siteName string) (string, error)

func (*MockController) GetZoneID

func (m *MockController) GetZoneID(ctx context.Context, siteID, zoneName string) (string, error)

func (*MockController) HasFeature

func (m *MockController) HasFeature(ctx context.Context, site string, feature string) (bool, error)

func (*MockController) InvalidateZoneCache

func (m *MockController) InvalidateZoneCache(site string)

func (*MockController) ListFirewallGroups

func (m *MockController) ListFirewallGroups(ctx context.Context, site string) ([]controller.FirewallGroup, error)

func (*MockController) ListFirewallRules

func (m *MockController) ListFirewallRules(ctx context.Context, site string) ([]controller.FirewallRule, error)

func (*MockController) ListTrafficMatchingLists

func (m *MockController) ListTrafficMatchingLists(ctx context.Context, site string) ([]controller.TrafficMatchingList, error)

func (*MockController) ListZonePolicies

func (m *MockController) ListZonePolicies(ctx context.Context, site string) ([]controller.ZonePolicy, error)

func (*MockController) Ping

func (m *MockController) Ping(ctx context.Context) error

func (*MockController) SetDiscoveredSites added in v1.2.0

func (m *MockController) SetDiscoveredSites(sites []string)

SetDiscoveredSites presets the sites returned by DiscoverSites.

func (*MockController) SetError

func (m *MockController) SetError(method string, err error)

SetError injects an error to be returned on the next call to the named method. The error is consumed (returned once) and then cleared.

func (*MockController) SetGroups

func (m *MockController) SetGroups(site string, groups []controller.FirewallGroup)

SetGroups presets the list of firewall groups returned for a site.

func (*MockController) SetHasFeature

func (m *MockController) SetHasFeature(site, feature string, val bool)

SetHasFeature presets the feature detection result for a site/feature pair.

func (*MockController) SetOrdering added in v1.2.4

func (m *MockController) SetOrdering(site, srcZoneID, dstZoneID string, ordering controller.PolicyOrdering)

GetLastOrdering returns the ordering last set for the given zone pair.

func (*MockController) SetPolicies

func (m *MockController) SetPolicies(site string, policies []controller.ZonePolicy)

SetPolicies presets the list of zone policies returned for a site.

func (*MockController) SetPolicyOrdering added in v1.1.7

func (m *MockController) SetPolicyOrdering(ctx context.Context, site, srcZoneID, dstZoneID string, ordering controller.PolicyOrdering) error

func (*MockController) SetRules

func (m *MockController) SetRules(site string, rules []controller.FirewallRule)

SetRules presets the list of firewall rules returned for a site.

func (*MockController) SetSiteID

func (m *MockController) SetSiteID(name, id string)

SetSiteID presets the UUID returned for a site internalReference.

func (*MockController) SetTMLs

func (m *MockController) SetTMLs(site string, tmls []controller.TrafficMatchingList)

SetTMLs presets the list of traffic matching lists returned for a site.

func (*MockController) SetZones

func (m *MockController) SetZones(site string, zones []controller.Zone)

SetZones presets the list of zones returned for a site.

func (*MockController) UpdateFirewallGroup

func (m *MockController) UpdateFirewallGroup(ctx context.Context, site string, g controller.FirewallGroup) error

func (*MockController) UpdateFirewallRule

func (m *MockController) UpdateFirewallRule(ctx context.Context, site string, r controller.FirewallRule) error

func (*MockController) UpdateTrafficMatchingList

func (m *MockController) UpdateTrafficMatchingList(ctx context.Context, site string, list controller.TrafficMatchingList) error

func (*MockController) UpdateZonePolicy

func (m *MockController) UpdateZonePolicy(ctx context.Context, site string, p controller.ZonePolicy) error

type MockStore

type MockStore struct {

	// SizeBytes value returned by SizeBytes()
	Size int64
	// contains filtered or unexported fields
}

MockStore implements storage.Store with in-memory maps for testing. All methods are safe for concurrent use.

func NewMockStore

func NewMockStore() *MockStore

NewMockStore returns a zero-state MockStore ready for use.

func (*MockStore) BanDelete

func (m *MockStore) BanDelete(ip string) error

func (*MockStore) BanExists

func (m *MockStore) BanExists(ip string) (bool, error)

func (*MockStore) BanList

func (m *MockStore) BanList() (map[string]storage.BanEntry, error)

func (*MockStore) BanRecord

func (m *MockStore) BanRecord(ip string, expiresAt time.Time, ipv6 bool) error

func (*MockStore) Close

func (m *MockStore) Close() error

func (*MockStore) DeleteGroup

func (m *MockStore) DeleteGroup(name string) error

func (*MockStore) DeletePolicy

func (m *MockStore) DeletePolicy(name string) error

func (*MockStore) GetGroup

func (m *MockStore) GetGroup(name string) (*storage.GroupRecord, error)

func (*MockStore) GetPolicy

func (m *MockStore) GetPolicy(name string) (*storage.PolicyRecord, error)

func (*MockStore) ListEvents added in v1.2.0

func (m *MockStore) ListEvents(limit int) ([]storage.EventEntry, error)

func (*MockStore) ListEventsForIP added in v1.2.0

func (m *MockStore) ListEventsForIP(ip string, limit int) ([]storage.EventEntry, error)

func (*MockStore) ListGroups

func (m *MockStore) ListGroups() (map[string]storage.GroupRecord, error)

func (*MockStore) ListPolicies

func (m *MockStore) ListPolicies() (map[string]storage.PolicyRecord, error)

func (*MockStore) PruneExpiredBans

func (m *MockStore) PruneExpiredBans() (int, error)

func (*MockStore) RecordEvent added in v1.2.0

func (m *MockStore) RecordEvent(e storage.EventEntry) error

func (*MockStore) SetError

func (m *MockStore) SetError(method string, err error)

SetError injects an error to be returned on the next call to the named method.

func (*MockStore) SetGroup

func (m *MockStore) SetGroup(name string, rec storage.GroupRecord) error

func (*MockStore) SetPolicy

func (m *MockStore) SetPolicy(name string, rec storage.PolicyRecord) error

func (*MockStore) SizeBytes

func (m *MockStore) SizeBytes() (int64, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL