Documentation
¶
Index ¶
- type FakePolicy
- type FakeRequest
- type FakeTMLItem
- type FakeUnifiServer
- func (s *FakeUnifiServer) APIKey() string
- func (s *FakeUnifiServer) AddGroup(siteRef, id, name, groupType string, members []string)
- func (s *FakeUnifiServer) AddPolicy(siteID string, p FakePolicy)
- func (s *FakeUnifiServer) AddRule(siteRef, id, name string, enabled bool, ruleset, action string, index int)
- func (s *FakeUnifiServer) AddSite(internalRef, id, displayName string)
- func (s *FakeUnifiServer) AddTML(siteID, id, tmlType, name string, items []FakeTMLItem)
- func (s *FakeUnifiServer) AddZone(siteID, id, name string)
- func (s *FakeUnifiServer) ClearFaults()
- func (s *FakeUnifiServer) Close()
- func (s *FakeUnifiServer) InjectFault(method, pathPrefix string, statusCode int)
- func (s *FakeUnifiServer) InjectRateLimit(method, pathPrefix string, retryAfterSec int)
- func (s *FakeUnifiServer) LastBody(method, pathPrefix string) []byte
- func (s *FakeUnifiServer) LastCSRFToken() string
- func (s *FakeUnifiServer) Requests() []FakeRequest
- func (s *FakeUnifiServer) RequestsMatching(method, pathPrefix string) []FakeRequest
- func (s *FakeUnifiServer) Reset()
- func (s *FakeUnifiServer) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (s *FakeUnifiServer) SetOrdering(siteID, srcZoneID, dstZoneID string, ordering controller.PolicyOrdering)
- func (s *FakeUnifiServer) URL() string
- type MockController
- func (m *MockController) Calls(method string) int
- func (m *MockController) Close() error
- func (m *MockController) CreateFirewallGroup(ctx context.Context, site string, g controller.FirewallGroup) (controller.FirewallGroup, error)
- func (m *MockController) CreateFirewallRule(ctx context.Context, site string, r controller.FirewallRule) (controller.FirewallRule, error)
- func (m *MockController) CreateTrafficMatchingList(ctx context.Context, site string, list controller.TrafficMatchingList) (controller.TrafficMatchingList, error)
- func (m *MockController) CreateZonePolicy(ctx context.Context, site string, p controller.ZonePolicy) (controller.ZonePolicy, error)
- func (m *MockController) DeleteFirewallGroup(ctx context.Context, site string, id string) error
- func (m *MockController) DeleteFirewallRule(ctx context.Context, site string, id string) error
- func (m *MockController) DeleteTrafficMatchingList(ctx context.Context, site string, id string) error
- func (m *MockController) DeleteZonePolicy(ctx context.Context, site string, id string) error
- func (m *MockController) DiscoverSites(ctx context.Context) ([]string, error)
- func (m *MockController) DiscoverZones(ctx context.Context, site string) ([]controller.Zone, error)
- func (m *MockController) GetLastOrdering(site, srcZoneID, dstZoneID string) controller.PolicyOrdering
- func (m *MockController) GetPolicyOrdering(ctx context.Context, site, srcZoneID, dstZoneID string) (controller.PolicyOrdering, error)
- func (m *MockController) GetSiteID(ctx context.Context, siteName string) (string, error)
- func (m *MockController) GetZoneID(ctx context.Context, siteID, zoneName string) (string, error)
- func (m *MockController) HasFeature(ctx context.Context, site string, feature string) (bool, error)
- func (m *MockController) InvalidateZoneCache(site string)
- func (m *MockController) ListFirewallGroups(ctx context.Context, site string) ([]controller.FirewallGroup, error)
- func (m *MockController) ListFirewallRules(ctx context.Context, site string) ([]controller.FirewallRule, error)
- func (m *MockController) ListTrafficMatchingLists(ctx context.Context, site string) ([]controller.TrafficMatchingList, error)
- func (m *MockController) ListZonePolicies(ctx context.Context, site string) ([]controller.ZonePolicy, error)
- func (m *MockController) Ping(ctx context.Context) error
- func (m *MockController) SetDiscoveredSites(sites []string)
- func (m *MockController) SetError(method string, err error)
- func (m *MockController) SetGroups(site string, groups []controller.FirewallGroup)
- func (m *MockController) SetHasFeature(site, feature string, val bool)
- func (m *MockController) SetOrdering(site, srcZoneID, dstZoneID string, ordering controller.PolicyOrdering)
- func (m *MockController) SetPolicies(site string, policies []controller.ZonePolicy)
- func (m *MockController) SetPolicyOrdering(ctx context.Context, site, srcZoneID, dstZoneID string, ...) error
- func (m *MockController) SetRules(site string, rules []controller.FirewallRule)
- func (m *MockController) SetSiteID(name, id string)
- func (m *MockController) SetTMLs(site string, tmls []controller.TrafficMatchingList)
- func (m *MockController) SetZones(site string, zones []controller.Zone)
- func (m *MockController) UpdateFirewallGroup(ctx context.Context, site string, g controller.FirewallGroup) error
- func (m *MockController) UpdateFirewallRule(ctx context.Context, site string, r controller.FirewallRule) error
- func (m *MockController) UpdateTrafficMatchingList(ctx context.Context, site string, list controller.TrafficMatchingList) error
- func (m *MockController) UpdateZonePolicy(ctx context.Context, site string, p controller.ZonePolicy) error
- type MockStore
- func (m *MockStore) BanDelete(ip string) error
- func (m *MockStore) BanExists(ip string) (bool, error)
- func (m *MockStore) BanList() (map[string]storage.BanEntry, error)
- func (m *MockStore) BanRecord(ip string, expiresAt time.Time, ipv6 bool) error
- func (m *MockStore) Close() error
- func (m *MockStore) DeleteGroup(name string) error
- func (m *MockStore) DeletePolicy(name string) error
- func (m *MockStore) GetGroup(name string) (*storage.GroupRecord, error)
- func (m *MockStore) GetPolicy(name string) (*storage.PolicyRecord, error)
- func (m *MockStore) ListEvents(limit int) ([]storage.EventEntry, error)
- func (m *MockStore) ListEventsForIP(ip string, limit int) ([]storage.EventEntry, error)
- func (m *MockStore) ListGroups() (map[string]storage.GroupRecord, error)
- func (m *MockStore) ListPolicies() (map[string]storage.PolicyRecord, error)
- func (m *MockStore) PruneExpiredBans() (int, error)
- func (m *MockStore) RecordEvent(e storage.EventEntry) error
- func (m *MockStore) SetError(method string, err error)
- func (m *MockStore) SetGroup(name string, rec storage.GroupRecord) error
- func (m *MockStore) SetPolicy(name string, rec storage.PolicyRecord) error
- func (m *MockStore) SizeBytes() (int64, error)
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
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 (*MockController) DeleteFirewallRule ¶
func (*MockController) DeleteTrafficMatchingList ¶
func (*MockController) DeleteZonePolicy ¶
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) HasFeature ¶
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) 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) DeleteGroup ¶
func (*MockStore) DeletePolicy ¶
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 (*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 (*MockStore) RecordEvent ¶ added in v1.2.0
func (m *MockStore) RecordEvent(e storage.EventEntry) error
func (*MockStore) SetError ¶
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