tests

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2025 License: MIT Imports: 13 Imported by: 0

README

Access Control System Tests

This directory contains comprehensive tests for the LLMrecon Tool's access control and security auditing system.

Test Structure

The test suite is organized into the following components:

  • Authentication Tests: Tests for login, logout, token validation, and MFA verification
  • RBAC Tests: Tests for role-based access control, permissions, and role hierarchy
  • User Management Tests: Tests for user creation, updating, deletion, and password management
  • Session Management Tests: Tests for session creation, validation, expiration, and refresh
  • Security Management Tests: Tests for security incidents and vulnerabilities
  • Audit Logging Tests: Tests for audit event logging, querying, and exporting
  • Boundary Enforcement Tests: Tests for context boundary enforcement and prompt injection protection
  • API Tests: Tests for the RESTful API endpoints

Running Tests

Running All Tests

To run all tests, use the following command from the project root:

go test -v ./src/security/access/tests/...
Running Specific Test Groups

To run a specific group of tests, use the -run flag with the test name pattern:

# Run only authentication tests
go test -v ./src/security/access/tests -run TestAuthentication

# Run only API tests
go test -v ./src/security/access/tests -run TestAPI
Running Individual Tests

To run a specific test case, use the -run flag with the test case name pattern:

# Run only the login success test
go test -v ./src/security/access/tests -run TestAuthentication/Login_AdminUser_Success

Test Coverage

To generate test coverage reports, use the -cover flag:

go test -v -cover ./src/security/access/tests/...

For a detailed HTML coverage report:

go test -coverprofile=coverage.out ./src/security/access/tests/...
go tool cover -html=coverage.out -o coverage.html

Test Helpers

The test_helpers.go file provides a TestContext structure that creates an isolated test environment with:

  • In-memory SQLite database
  • Initialized access control manager
  • Test users and roles
  • Helper methods for assertions and test setup

Adding New Tests

When adding new tests:

  1. Follow the existing test structure and naming conventions
  2. Use the TestContext for test setup and teardown
  3. Group related tests using t.Run()
  4. Add assertions using the helper methods in TestContext
  5. Ensure proper cleanup of resources

Continuous Integration

These tests are automatically run as part of the CI/CD pipeline to ensure the access control system remains secure and functional with each change.

Documentation

Overview

Package tests provides testing utilities for the access control system

Index

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) Login

func (m *MockAuthManager) Login(ctx context.Context, username, password, ipAddress, userAgent string) (*models.Session, 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

func (*MockAuthManager) VerifyMFA

func (m *MockAuthManager) VerifyMFA(ctx context.Context, userID, code string) (bool, error)

type MockBoundaryEnforcer

type MockBoundaryEnforcer struct{}

MockBoundaryEnforcer implements the BoundaryEnforcer interface for testing

func (*MockBoundaryEnforcer) EnforceDeviceRestriction

func (m *MockBoundaryEnforcer) EnforceDeviceRestriction(ctx context.Context, userID, deviceID string) (bool, error)

func (*MockBoundaryEnforcer) EnforceIPRestriction

func (m *MockBoundaryEnforcer) EnforceIPRestriction(ctx context.Context, userID, ipAddress string) (bool, error)

func (*MockBoundaryEnforcer) EnforceLocationRestriction

func (m *MockBoundaryEnforcer) EnforceLocationRestriction(ctx context.Context, userID, location string) (bool, error)

func (*MockBoundaryEnforcer) EnforceRateLimiting

func (m *MockBoundaryEnforcer) EnforceRateLimiting(ctx context.Context, userID, action string) (bool, error)

func (*MockBoundaryEnforcer) EnforceTimeRestriction

func (m *MockBoundaryEnforcer) EnforceTimeRestriction(ctx context.Context, userID string) (bool, error)

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 (m *MockRBACManager) GetRoleByID(ctx context.Context, id string) (*Role, error)

func (*MockRBACManager) GetUserRoles

func (m *MockRBACManager) GetUserRoles(ctx context.Context, userID string) ([]*Role, error)

func (*MockRBACManager) HasPermission

func (m *MockRBACManager) HasPermission(ctx context.Context, userID, permission string) (bool, error)

func (*MockRBACManager) ListRoles

func (m *MockRBACManager) ListRoles(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*Role, int, error)

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

func (m *MockSecurityManager) AddRemediationPlan(ctx context.Context, id string, plan string) error

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 (m *MockSessionManager) CreateSession(ctx context.Context, userID, ipAddress, userAgent string) (*models.Session, error)

func (*MockSessionManager) GetUserSessions

func (m *MockSessionManager) GetUserSessions(ctx context.Context, userID string) ([]*models.Session, error)

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 (m *MockSessionManager) RefreshSession(ctx context.Context, refreshToken string) (*models.Session, error)

func (*MockSessionManager) ValidateSession

func (m *MockSessionManager) ValidateSession(ctx context.Context, token string) (*models.Session, error)

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 (m *MockSessionStore) CreateSession(ctx context.Context, session *models.Session) error

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 (m *MockSessionStore) GetSessionByID(ctx context.Context, id string) (*models.Session, error)

func (*MockSessionStore) GetSessionByRefreshToken

func (m *MockSessionStore) GetSessionByRefreshToken(ctx context.Context, refreshToken string) (*models.Session, error)

func (*MockSessionStore) GetSessionByToken

func (m *MockSessionStore) GetSessionByToken(ctx context.Context, token string) (*models.Session, error)

func (*MockSessionStore) ListSessionsByUserID

func (m *MockSessionStore) ListSessionsByUserID(ctx context.Context, userID string) ([]*models.Session, error)

func (*MockSessionStore) UpdateSession

func (m *MockSessionStore) UpdateSession(ctx context.Context, session *models.Session) error

type MockUserManager

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

MockUserManager implements the UserManager interface for testing

func (*MockUserManager) CreateUser

func (m *MockUserManager) CreateUser(ctx context.Context, user *models.User) error

func (*MockUserManager) DeleteUser

func (m *MockUserManager) DeleteUser(ctx context.Context, id string) error

func (*MockUserManager) GetUserByID

func (m *MockUserManager) GetUserByID(ctx context.Context, id string) (*models.User, error)

func (*MockUserManager) GetUserByUsername

func (m *MockUserManager) GetUserByUsername(ctx context.Context, username string) (*models.User, error)

func (*MockUserManager) ListUsers

func (m *MockUserManager) ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.User, int, error)

func (*MockUserManager) UpdateUser

func (m *MockUserManager) UpdateUser(ctx context.Context, user *models.User) error

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 (m *MockUserStore) CreateUser(ctx context.Context, user *models.User) error

func (*MockUserStore) DeleteUser

func (m *MockUserStore) DeleteUser(ctx context.Context, id string) error

func (*MockUserStore) GetUserByEmail

func (m *MockUserStore) GetUserByEmail(ctx context.Context, email string) (*models.User, error)

func (*MockUserStore) GetUserByID

func (m *MockUserStore) GetUserByID(ctx context.Context, id string) (*models.User, error)

func (*MockUserStore) GetUserByUsername

func (m *MockUserStore) GetUserByUsername(ctx context.Context, username string) (*models.User, error)

func (*MockUserStore) ListUsers

func (m *MockUserStore) ListUsers(ctx context.Context, filter map[string]interface{}, offset, limit int) ([]*models.User, int, error)

func (*MockUserStore) UpdateUser

func (m *MockUserStore) UpdateUser(ctx context.Context, user *models.User) error

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

Jump to

Keyboard shortcuts

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