Documentation
¶
Overview ¶
Package tests provides testing utilities for the access control system
Index ¶
- type AuthManager
- type BoundaryEnforcer
- type MockAuditLogger
- func (m *MockAuditLogger) Close() error
- func (m *MockAuditLogger) ExportEvents(ctx context.Context, filter map[string]interface{}, format string) (string, error)
- func (m *MockAuditLogger) GetEventByID(ctx context.Context, id string) (*interfaces.AuditEvent, error)
- func (m *MockAuditLogger) LogEvent(ctx context.Context, event *interfaces.AuditEvent) error
- func (m *MockAuditLogger) QueryEvents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*interfaces.AuditEvent, int, error)
- type MockAuthManager
- func (m *MockAuthManager) ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
- func (m *MockAuthManager) Login(ctx context.Context, username, password, ipAddress, userAgent string) (*models.Session, error)
- func (m *MockAuthManager) Logout(ctx context.Context, token string) error
- func (m *MockAuthManager) ResetPassword(ctx context.Context, userID, newPassword string) error
- func (m *MockAuthManager) VerifyMFA(ctx context.Context, userID, code string) (bool, error)
- type MockBoundaryEnforcer
- func (m *MockBoundaryEnforcer) EnforceDeviceRestriction(ctx context.Context, userID, deviceID string) (bool, error)
- func (m *MockBoundaryEnforcer) EnforceIPRestriction(ctx context.Context, userID, ipAddress string) (bool, error)
- func (m *MockBoundaryEnforcer) EnforceLocationRestriction(ctx context.Context, userID, location string) (bool, error)
- func (m *MockBoundaryEnforcer) EnforceRateLimiting(ctx context.Context, userID, action string) (bool, error)
- func (m *MockBoundaryEnforcer) EnforceTimeRestriction(ctx context.Context, userID string) (bool, error)
- type MockIncidentStore
- func (m *MockIncidentStore) Close() error
- func (m *MockIncidentStore) CreateIncident(ctx context.Context, incident *models.SecurityIncident) error
- func (m *MockIncidentStore) DeleteIncident(ctx context.Context, id string) error
- func (m *MockIncidentStore) GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)
- func (m *MockIncidentStore) ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)
- func (m *MockIncidentStore) UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error
- type MockRBACManager
- func (m *MockRBACManager) AssignRoleToUser(ctx context.Context, userID, roleID string) error
- func (m *MockRBACManager) CreateRole(ctx context.Context, role *Role) error
- func (m *MockRBACManager) DeleteRole(ctx context.Context, id string) error
- func (m *MockRBACManager) GetRoleByID(ctx context.Context, id string) (*Role, error)
- func (m *MockRBACManager) GetUserRoles(ctx context.Context, userID string) ([]*Role, error)
- func (m *MockRBACManager) HasPermission(ctx context.Context, userID, permission string) (bool, error)
- func (m *MockRBACManager) ListRoles(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*Role, int, error)
- func (m *MockRBACManager) RemoveRoleFromUser(ctx context.Context, userID, roleID string) error
- func (m *MockRBACManager) UpdateRole(ctx context.Context, role *Role) error
- type MockSecurityManager
- func (m *MockSecurityManager) AddRemediationPlan(ctx context.Context, id string, plan string) error
- func (m *MockSecurityManager) AssignIncident(ctx context.Context, id string, assigneeID string) error
- func (m *MockSecurityManager) CreateIncident(ctx context.Context, incident *models.SecurityIncident) error
- func (m *MockSecurityManager) CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
- func (m *MockSecurityManager) DeleteIncident(ctx context.Context, id string) error
- func (m *MockSecurityManager) DeleteVulnerability(ctx context.Context, id string) error
- func (m *MockSecurityManager) EscalateIncident(ctx context.Context, id string, severity models.SecurityIncidentSeverity, ...) error
- func (m *MockSecurityManager) GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)
- func (m *MockSecurityManager) GetVulnerabilityByCVE(ctx context.Context, cve string) (*models.Vulnerability, error)
- func (m *MockSecurityManager) GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)
- func (m *MockSecurityManager) ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)
- func (m *MockSecurityManager) ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)
- func (m *MockSecurityManager) MarkVulnerabilityRemediated(ctx context.Context, id string, details string) error
- func (m *MockSecurityManager) UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error
- func (m *MockSecurityManager) UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
- func (m *MockSecurityManager) UpdateVulnerabilityStatus(ctx context.Context, id string, status models.VulnerabilityStatus) error
- type MockSessionManager
- func (m *MockSessionManager) CreateSession(ctx context.Context, userID, ipAddress, userAgent string) (*models.Session, error)
- func (m *MockSessionManager) GetUserSessions(ctx context.Context, userID string) ([]*models.Session, error)
- func (m *MockSessionManager) InvalidateAllUserSessions(ctx context.Context, userID string) error
- func (m *MockSessionManager) InvalidateSession(ctx context.Context, token string) error
- func (m *MockSessionManager) RefreshSession(ctx context.Context, refreshToken string) (*models.Session, error)
- func (m *MockSessionManager) ValidateSession(ctx context.Context, token string) (*models.Session, error)
- type MockSessionStore
- func (m *MockSessionStore) CleanExpiredSessions(ctx context.Context) (int, error)
- func (m *MockSessionStore) Close() error
- func (m *MockSessionStore) CreateSession(ctx context.Context, session *models.Session) error
- func (m *MockSessionStore) DeleteSession(ctx context.Context, id string) error
- func (m *MockSessionStore) DeleteSessionsByUserID(ctx context.Context, userID string) error
- func (m *MockSessionStore) GetSessionByID(ctx context.Context, id string) (*models.Session, error)
- func (m *MockSessionStore) GetSessionByRefreshToken(ctx context.Context, refreshToken string) (*models.Session, error)
- func (m *MockSessionStore) GetSessionByToken(ctx context.Context, token string) (*models.Session, error)
- func (m *MockSessionStore) ListSessionsByUserID(ctx context.Context, userID string) ([]*models.Session, error)
- func (m *MockSessionStore) UpdateSession(ctx context.Context, session *models.Session) error
- type MockUserManager
- func (m *MockUserManager) CreateUser(ctx context.Context, user *models.User) error
- func (m *MockUserManager) DeleteUser(ctx context.Context, id string) error
- func (m *MockUserManager) GetUserByID(ctx context.Context, id string) (*models.User, error)
- func (m *MockUserManager) GetUserByUsername(ctx context.Context, username string) (*models.User, error)
- func (m *MockUserManager) ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.User, int, error)
- func (m *MockUserManager) UpdateUser(ctx context.Context, user *models.User) error
- type MockUserStore
- func (m *MockUserStore) Close() error
- func (m *MockUserStore) CreateUser(ctx context.Context, user *models.User) error
- func (m *MockUserStore) DeleteUser(ctx context.Context, id string) error
- func (m *MockUserStore) GetUserByEmail(ctx context.Context, email string) (*models.User, error)
- func (m *MockUserStore) GetUserByID(ctx context.Context, id string) (*models.User, error)
- func (m *MockUserStore) GetUserByUsername(ctx context.Context, username string) (*models.User, error)
- func (m *MockUserStore) ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.User, int, error)
- func (m *MockUserStore) UpdateUser(ctx context.Context, user *models.User) error
- type MockVulnerabilityStore
- func (m *MockVulnerabilityStore) Close() error
- func (m *MockVulnerabilityStore) CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
- func (m *MockVulnerabilityStore) DeleteVulnerability(ctx context.Context, id string) error
- func (m *MockVulnerabilityStore) GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)
- func (m *MockVulnerabilityStore) ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)
- func (m *MockVulnerabilityStore) UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
- type RBACManager
- type Role
- type SecurityManager
- type SessionManager
- type TestContext
- func (c *TestContext) AssertContains(s, substring string, message string)
- func (c *TestContext) AssertEqual(expected, actual interface{}, message string)
- func (c *TestContext) AssertError(err error, message string)
- func (c *TestContext) AssertFalse(condition bool, message string)
- func (c *TestContext) AssertLen(value interface{}, expected int, message string)
- func (c *TestContext) AssertNil(value interface{}, message string)
- func (c *TestContext) AssertNoError(err error, message string)
- func (c *TestContext) AssertNotContains(s, substring string, message string)
- func (c *TestContext) AssertNotEqual(expected, actual interface{}, message string)
- func (c *TestContext) AssertNotNil(value interface{}, message string)
- func (c *TestContext) AssertTrue(condition bool, message string)
- func (c *TestContext) CreateTestIncident(title, description, severity, reportedBy string) *models.SecurityIncident
- func (c *TestContext) CreateTestRole(name, description string, permissions []string) *Role
- func (c *TestContext) CreateTestUser(username, password, email string, roles []string) *models.User
- func (c *TestContext) CreateTestVulnerability(title, description, severity, reportedBy string, affectedSystems []string) *models.Vulnerability
- func (c *TestContext) CreateTestVulnerabilitySimple(title, description, severity, reportedBy string) *models.Vulnerability
- func (c *TestContext) LoginUser(username, password string) (string, error)
- func (c *TestContext) WaitForAuditEvent(action string, timeout time.Duration) *interfaces.AuditEvent
- func (c *TestContext) WaitForAuditLog(action string, timeout time.Duration) *interfaces.AuditEvent
- type UserManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthManager ¶
type AuthManager interface {
// Login authenticates a user
Login(ctx context.Context, username, password, ipAddress, userAgent string) (*models.Session, error)
// Logout logs out a user
Logout(ctx context.Context, token string) error
// VerifyMFA verifies multi-factor authentication
VerifyMFA(ctx context.Context, userID, code string) (bool, error)
// ResetPassword resets a user's password
ResetPassword(ctx context.Context, userID, newPassword string) error
// ChangePassword changes a user's password
ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
}
AuthManager defines the interface for authentication operations
type BoundaryEnforcer ¶
type BoundaryEnforcer interface {
// EnforceIPRestriction enforces IP restrictions
EnforceIPRestriction(ctx context.Context, userID, ipAddress string) (bool, error)
// EnforceTimeRestriction enforces time restrictions
EnforceTimeRestriction(ctx context.Context, userID string) (bool, error)
// EnforceLocationRestriction enforces location restrictions
EnforceLocationRestriction(ctx context.Context, userID, location string) (bool, error)
// EnforceDeviceRestriction enforces device restrictions
EnforceDeviceRestriction(ctx context.Context, userID, deviceID string) (bool, error)
// EnforceRateLimiting enforces rate limiting
EnforceRateLimiting(ctx context.Context, userID, action string) (bool, error)
}
BoundaryEnforcer defines the interface for boundary enforcement operations
type MockAuditLogger ¶
type MockAuditLogger struct {
Logs []*interfaces.AuditEvent
}
MockAuditLogger implements the interfaces.AuditLogger interface for testing
func (*MockAuditLogger) Close ¶
func (m *MockAuditLogger) Close() error
Close closes the audit logger
func (*MockAuditLogger) ExportEvents ¶
func (m *MockAuditLogger) ExportEvents(ctx context.Context, filter map[string]interface{}, format string) (string, error)
ExportEvents exports audit events to a file
func (*MockAuditLogger) GetEventByID ¶
func (m *MockAuditLogger) GetEventByID(ctx context.Context, id string) (*interfaces.AuditEvent, error)
GetEventByID retrieves an audit event by ID
func (*MockAuditLogger) LogEvent ¶
func (m *MockAuditLogger) LogEvent(ctx context.Context, event *interfaces.AuditEvent) error
LogEvent logs an audit event
func (*MockAuditLogger) QueryEvents ¶
func (m *MockAuditLogger) QueryEvents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*interfaces.AuditEvent, int, error)
QueryEvents queries audit events with filtering
type MockAuthManager ¶
type MockAuthManager struct{}
MockAuthManager implements the AuthManager interface for testing
func (*MockAuthManager) ChangePassword ¶
func (m *MockAuthManager) ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
func (*MockAuthManager) Logout ¶
func (m *MockAuthManager) Logout(ctx context.Context, token string) error
func (*MockAuthManager) ResetPassword ¶
func (m *MockAuthManager) ResetPassword(ctx context.Context, userID, newPassword string) error
type MockBoundaryEnforcer ¶
type MockBoundaryEnforcer struct{}
MockBoundaryEnforcer implements the BoundaryEnforcer interface for testing
func (*MockBoundaryEnforcer) EnforceDeviceRestriction ¶
func (*MockBoundaryEnforcer) EnforceIPRestriction ¶
func (*MockBoundaryEnforcer) EnforceLocationRestriction ¶
func (*MockBoundaryEnforcer) EnforceRateLimiting ¶
func (*MockBoundaryEnforcer) EnforceTimeRestriction ¶
type MockIncidentStore ¶
type MockIncidentStore struct {
// contains filtered or unexported fields
}
MockIncidentStore implements the interfaces.IncidentStore interface for testing
func (*MockIncidentStore) Close ¶
func (m *MockIncidentStore) Close() error
func (*MockIncidentStore) CreateIncident ¶
func (m *MockIncidentStore) CreateIncident(ctx context.Context, incident *models.SecurityIncident) error
func (*MockIncidentStore) DeleteIncident ¶
func (m *MockIncidentStore) DeleteIncident(ctx context.Context, id string) error
func (*MockIncidentStore) GetIncidentByID ¶
func (m *MockIncidentStore) GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)
func (*MockIncidentStore) ListIncidents ¶
func (m *MockIncidentStore) ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)
func (*MockIncidentStore) UpdateIncident ¶
func (m *MockIncidentStore) UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error
type MockRBACManager ¶
type MockRBACManager struct {
// contains filtered or unexported fields
}
MockRBACManager implements the RBACManager interface for testing
func NewMockRBACManager ¶
func NewMockRBACManager() *MockRBACManager
NewMockRBACManager creates a new mock RBAC manager
func (*MockRBACManager) AssignRoleToUser ¶
func (m *MockRBACManager) AssignRoleToUser(ctx context.Context, userID, roleID string) error
func (*MockRBACManager) CreateRole ¶
func (m *MockRBACManager) CreateRole(ctx context.Context, role *Role) error
func (*MockRBACManager) DeleteRole ¶
func (m *MockRBACManager) DeleteRole(ctx context.Context, id string) error
func (*MockRBACManager) GetRoleByID ¶
func (*MockRBACManager) GetUserRoles ¶
func (*MockRBACManager) HasPermission ¶
func (*MockRBACManager) RemoveRoleFromUser ¶
func (m *MockRBACManager) RemoveRoleFromUser(ctx context.Context, userID, roleID string) error
func (*MockRBACManager) UpdateRole ¶
func (m *MockRBACManager) UpdateRole(ctx context.Context, role *Role) error
type MockSecurityManager ¶
type MockSecurityManager struct {
// contains filtered or unexported fields
}
MockSecurityManager implements the SecurityManager interface for testing
func (*MockSecurityManager) AddRemediationPlan ¶
AddRemediationPlan adds a remediation plan to a vulnerability
func (*MockSecurityManager) AssignIncident ¶
func (m *MockSecurityManager) AssignIncident(ctx context.Context, id string, assigneeID string) error
AssignIncident assigns a security incident to a user
func (*MockSecurityManager) CreateIncident ¶
func (m *MockSecurityManager) CreateIncident(ctx context.Context, incident *models.SecurityIncident) error
func (*MockSecurityManager) CreateVulnerability ¶
func (m *MockSecurityManager) CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
func (*MockSecurityManager) DeleteIncident ¶
func (m *MockSecurityManager) DeleteIncident(ctx context.Context, id string) error
func (*MockSecurityManager) DeleteVulnerability ¶
func (m *MockSecurityManager) DeleteVulnerability(ctx context.Context, id string) error
func (*MockSecurityManager) EscalateIncident ¶
func (m *MockSecurityManager) EscalateIncident(ctx context.Context, id string, severity models.SecurityIncidentSeverity, reason string) error
EscalateIncident escalates a security incident
func (*MockSecurityManager) GetIncidentByID ¶
func (m *MockSecurityManager) GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)
func (*MockSecurityManager) GetVulnerabilityByCVE ¶
func (m *MockSecurityManager) GetVulnerabilityByCVE(ctx context.Context, cve string) (*models.Vulnerability, error)
GetVulnerabilityByCVE gets a vulnerability by its CVE ID
func (*MockSecurityManager) GetVulnerabilityByID ¶
func (m *MockSecurityManager) GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)
func (*MockSecurityManager) ListIncidents ¶
func (m *MockSecurityManager) ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)
func (*MockSecurityManager) ListVulnerabilities ¶
func (m *MockSecurityManager) ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)
func (*MockSecurityManager) MarkVulnerabilityRemediated ¶
func (m *MockSecurityManager) MarkVulnerabilityRemediated(ctx context.Context, id string, details string) error
MarkVulnerabilityRemediated marks a vulnerability as remediated
func (*MockSecurityManager) UpdateIncident ¶
func (m *MockSecurityManager) UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error
func (*MockSecurityManager) UpdateVulnerability ¶
func (m *MockSecurityManager) UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
func (*MockSecurityManager) UpdateVulnerabilityStatus ¶
func (m *MockSecurityManager) UpdateVulnerabilityStatus(ctx context.Context, id string, status models.VulnerabilityStatus) error
UpdateVulnerabilityStatus updates the status of a vulnerability
type MockSessionManager ¶
type MockSessionManager struct {
// contains filtered or unexported fields
}
MockSessionManager implements the SessionManager interface for testing
func (*MockSessionManager) CreateSession ¶
func (*MockSessionManager) GetUserSessions ¶
func (*MockSessionManager) InvalidateAllUserSessions ¶
func (m *MockSessionManager) InvalidateAllUserSessions(ctx context.Context, userID string) error
func (*MockSessionManager) InvalidateSession ¶
func (m *MockSessionManager) InvalidateSession(ctx context.Context, token string) error
func (*MockSessionManager) RefreshSession ¶
func (*MockSessionManager) ValidateSession ¶
type MockSessionStore ¶
type MockSessionStore struct {
// contains filtered or unexported fields
}
MockSessionStore implements the interfaces.SessionStore interface for testing
func (*MockSessionStore) CleanExpiredSessions ¶
func (m *MockSessionStore) CleanExpiredSessions(ctx context.Context) (int, error)
func (*MockSessionStore) Close ¶
func (m *MockSessionStore) Close() error
func (*MockSessionStore) CreateSession ¶
func (*MockSessionStore) DeleteSession ¶
func (m *MockSessionStore) DeleteSession(ctx context.Context, id string) error
func (*MockSessionStore) DeleteSessionsByUserID ¶
func (m *MockSessionStore) DeleteSessionsByUserID(ctx context.Context, userID string) error
func (*MockSessionStore) GetSessionByID ¶
func (*MockSessionStore) GetSessionByRefreshToken ¶
func (*MockSessionStore) GetSessionByToken ¶
func (*MockSessionStore) ListSessionsByUserID ¶
func (*MockSessionStore) UpdateSession ¶
type MockUserManager ¶
type MockUserManager struct {
// contains filtered or unexported fields
}
MockUserManager implements the UserManager interface for testing
func (*MockUserManager) CreateUser ¶
func (*MockUserManager) DeleteUser ¶
func (m *MockUserManager) DeleteUser(ctx context.Context, id string) error
func (*MockUserManager) GetUserByID ¶
func (*MockUserManager) GetUserByUsername ¶
func (*MockUserManager) UpdateUser ¶
type MockUserStore ¶
type MockUserStore struct {
// contains filtered or unexported fields
}
MockUserStore implements the interfaces.UserStore interface for testing
func (*MockUserStore) Close ¶
func (m *MockUserStore) Close() error
func (*MockUserStore) CreateUser ¶
func (*MockUserStore) DeleteUser ¶
func (m *MockUserStore) DeleteUser(ctx context.Context, id string) error
func (*MockUserStore) GetUserByEmail ¶
func (*MockUserStore) GetUserByID ¶
func (*MockUserStore) GetUserByUsername ¶
func (*MockUserStore) UpdateUser ¶
type MockVulnerabilityStore ¶
type MockVulnerabilityStore struct {
// contains filtered or unexported fields
}
MockVulnerabilityStore implements the interfaces.VulnerabilityStore interface for testing
func (*MockVulnerabilityStore) Close ¶
func (m *MockVulnerabilityStore) Close() error
func (*MockVulnerabilityStore) CreateVulnerability ¶
func (m *MockVulnerabilityStore) CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
func (*MockVulnerabilityStore) DeleteVulnerability ¶
func (m *MockVulnerabilityStore) DeleteVulnerability(ctx context.Context, id string) error
func (*MockVulnerabilityStore) GetVulnerabilityByID ¶
func (m *MockVulnerabilityStore) GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)
func (*MockVulnerabilityStore) ListVulnerabilities ¶
func (m *MockVulnerabilityStore) ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)
func (*MockVulnerabilityStore) UpdateVulnerability ¶
func (m *MockVulnerabilityStore) UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
type RBACManager ¶
type RBACManager interface {
// CreateRole creates a new role
CreateRole(ctx context.Context, role *Role) error
// GetRoleByID retrieves a role by ID
GetRoleByID(ctx context.Context, id string) (*Role, error)
// UpdateRole updates an existing role
UpdateRole(ctx context.Context, role *Role) error
// DeleteRole deletes a role
DeleteRole(ctx context.Context, id string) error
// ListRoles lists roles with optional filtering
ListRoles(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*Role, int, error)
// AssignRoleToUser assigns a role to a user
AssignRoleToUser(ctx context.Context, userID, roleID string) error
// RemoveRoleFromUser removes a role from a user
RemoveRoleFromUser(ctx context.Context, userID, roleID string) error
// GetUserRoles gets the roles assigned to a user
GetUserRoles(ctx context.Context, userID string) ([]*Role, error)
// HasPermission checks if a user has a specific permission
HasPermission(ctx context.Context, userID, permission string) (bool, error)
}
RBACManager defines the interface for role-based access control operations
type Role ¶
type Role struct {
ID string
Name string
Description string
Permissions []string
IsBuiltIn bool
CreatedAt time.Time
UpdatedAt time.Time
}
Role represents a role in the system
type SecurityManager ¶
type SecurityManager interface {
// CreateIncident creates a new security incident
CreateIncident(ctx context.Context, incident *models.SecurityIncident) error
// GetIncidentByID retrieves a security incident by ID
GetIncidentByID(ctx context.Context, id string) (*models.SecurityIncident, error)
// UpdateIncident updates an existing security incident
UpdateIncident(ctx context.Context, incident *models.SecurityIncident) error
// DeleteIncident deletes a security incident
DeleteIncident(ctx context.Context, id string) error
// ListIncidents lists security incidents with optional filtering
ListIncidents(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.SecurityIncident, int, error)
// CreateVulnerability creates a new vulnerability
CreateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
// GetVulnerabilityByID retrieves a vulnerability by ID
GetVulnerabilityByID(ctx context.Context, id string) (*models.Vulnerability, error)
// UpdateVulnerability updates an existing vulnerability
UpdateVulnerability(ctx context.Context, vulnerability *models.Vulnerability) error
// UpdateVulnerabilityStatus updates the status of a vulnerability
UpdateVulnerabilityStatus(ctx context.Context, id string, status models.VulnerabilityStatus) error
// DeleteVulnerability deletes a vulnerability
DeleteVulnerability(ctx context.Context, id string) error
// ListVulnerabilities lists vulnerabilities with optional filtering
ListVulnerabilities(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.Vulnerability, int, error)
}
SecurityManager defines the interface for security incident and vulnerability management
type SessionManager ¶
type SessionManager interface {
// CreateSession creates a new session
CreateSession(ctx context.Context, userID, ipAddress, userAgent string) (*models.Session, error)
// ValidateSession validates a session token
ValidateSession(ctx context.Context, token string) (*models.Session, error)
// RefreshSession refreshes a session
RefreshSession(ctx context.Context, refreshToken string) (*models.Session, error)
// InvalidateSession invalidates a session
InvalidateSession(ctx context.Context, token string) error
// InvalidateAllUserSessions invalidates all sessions for a user
InvalidateAllUserSessions(ctx context.Context, userID string) error
// GetUserSessions gets all sessions for a user
GetUserSessions(ctx context.Context, userID string) ([]*models.Session, error)
}
SessionManager defines the interface for session management operations
type TestContext ¶
type TestContext struct {
// Test components
T *testing.T
TempDir string
CleanupFn func()
// Database components
DB *sql.DB
DBFactory *db.Factory
DBConfig *db.DBConfig
DBFilePath string
// Access control components
Manager *access.DBAccessControlManager
AuditLogger interfaces.AuditLogger
AdminPass string
AdminUser *models.User
UserManager UserManager
RBACManager RBACManager
SessionManager SessionManager
SecurityManager SecurityManager
BoundaryEnforcer BoundaryEnforcer
AuthManager AuthManager
// Stores
UserStore interfaces.UserStore
SessionStore interfaces.SessionStore
IncidentStore interfaces.IncidentStore
VulnerabilityStore interfaces.VulnerabilityStore
// Test data
TestUsers map[string]*models.User
}
TestContext represents a test context with all necessary components
func NewTestContext ¶
func NewTestContext(t *testing.T) *TestContext
NewTestContext creates a new test context with an in-memory database
func (*TestContext) AssertContains ¶
func (c *TestContext) AssertContains(s, substring string, message string)
AssertContains asserts that a string contains a substring
func (*TestContext) AssertEqual ¶
func (c *TestContext) AssertEqual(expected, actual interface{}, message string)
AssertEqual asserts that two values are equal
func (*TestContext) AssertError ¶
func (c *TestContext) AssertError(err error, message string)
AssertError asserts that an error is not nil
func (*TestContext) AssertFalse ¶
func (c *TestContext) AssertFalse(condition bool, message string)
AssertFalse asserts that a condition is false
func (*TestContext) AssertLen ¶
func (c *TestContext) AssertLen(value interface{}, expected int, message string)
AssertLen asserts that a slice or map has the expected length
func (*TestContext) AssertNil ¶
func (c *TestContext) AssertNil(value interface{}, message string)
AssertNil asserts that a value is nil
func (*TestContext) AssertNoError ¶
func (c *TestContext) AssertNoError(err error, message string)
AssertNoError asserts that an error is nil
func (*TestContext) AssertNotContains ¶
func (c *TestContext) AssertNotContains(s, substring string, message string)
AssertNotContains asserts that a string does not contain a substring
func (*TestContext) AssertNotEqual ¶
func (c *TestContext) AssertNotEqual(expected, actual interface{}, message string)
AssertNotEqual asserts that two values are not equal
func (*TestContext) AssertNotNil ¶
func (c *TestContext) AssertNotNil(value interface{}, message string)
AssertNotNil asserts that a value is not nil
func (*TestContext) AssertTrue ¶
func (c *TestContext) AssertTrue(condition bool, message string)
AssertTrue asserts that a condition is true
func (*TestContext) CreateTestIncident ¶
func (c *TestContext) CreateTestIncident(title, description, severity, reportedBy string) *models.SecurityIncident
CreateTestIncident creates a test incident
func (*TestContext) CreateTestRole ¶
func (c *TestContext) CreateTestRole(name, description string, permissions []string) *Role
CreateTestRole creates a test role with the given name, description, and permissions
func (*TestContext) CreateTestUser ¶
func (c *TestContext) CreateTestUser(username, password, email string, roles []string) *models.User
CreateTestUser creates a test user with the given username, password, email, and roles
func (*TestContext) CreateTestVulnerability ¶
func (c *TestContext) CreateTestVulnerability(title, description, severity, reportedBy string, affectedSystems []string) *models.Vulnerability
CreateTestVulnerability creates a test vulnerability This is the full signature version
func (*TestContext) CreateTestVulnerabilitySimple ¶
func (c *TestContext) CreateTestVulnerabilitySimple(title, description, severity, reportedBy string) *models.Vulnerability
CreateTestVulnerabilitySimple creates a test vulnerability with a simpler signature This is for backward compatibility with existing tests
func (*TestContext) LoginUser ¶
func (c *TestContext) LoginUser(username, password string) (string, error)
LoginUser logs in a test user
func (*TestContext) WaitForAuditEvent ¶
func (c *TestContext) WaitForAuditEvent(action string, timeout time.Duration) *interfaces.AuditEvent
WaitForAuditEvent waits for an audit event with the specified action (deprecated, use WaitForAuditLog instead)
func (*TestContext) WaitForAuditLog ¶
func (c *TestContext) WaitForAuditLog(action string, timeout time.Duration) *interfaces.AuditEvent
WaitForAuditLog waits for an audit log entry with the specified action
type UserManager ¶
type UserManager interface {
// CreateUser creates a new user
CreateUser(ctx context.Context, user *models.User) error
// GetUserByID retrieves a user by ID
GetUserByID(ctx context.Context, id string) (*models.User, error)
// GetUserByUsername retrieves a user by username
GetUserByUsername(ctx context.Context, username string) (*models.User, error)
// UpdateUser updates an existing user
UpdateUser(ctx context.Context, user *models.User) error
// DeleteUser deletes a user
DeleteUser(ctx context.Context, id string) error
// ListUsers lists users with optional filtering
ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.User, int, error)
}
UserManager defines the interface for user management operations