Documentation
¶
Index ¶
- Constants
- func AssertDatabaseInteraction(t *testing.T, mockDB *MockDatabase, expectedCalls int)
- func AssertQueryContains(t *testing.T, mockDB *MockDatabase, expectedSubstring string)
- func AssertQueryExecuted(t *testing.T, mockDB *MockDatabase, expectedQuery string)
- func AssertTransactionCommitted(t *testing.T, mockTx *MockTransaction)
- func AssertTransactionRolledBack(t *testing.T, mockTx *MockTransaction)
- func BoolPtr(b bool) *bool
- func CleanupMockDatabase(mockDB *MockDatabase)
- func CleanupMockTransaction(mockTx *MockTransaction)
- func CleanupTestDB(t *testing.T, db *gorm.DB)
- func CreateTestAAAUser() *auth.AAAUser
- func CreateTestCatalogFilter() *catalogRequests.CatalogFilter
- func CreateTestCatalogItem(itemType catalogModels.CatalogItemType) *catalogModels.CatalogItem
- func CreateTestCatalogItemRequest() *catalogRequests.CreateCatalogItemRequest
- func CreateTestCreateOrderRequest() *orderRequests.CreateOrderRequest
- func CreateTestLabour() *catalogModels.Labour
- func CreateTestLabourRequest() *catalogRequests.CreateLabourRequest
- func CreateTestListOrdersRequest() *orderRequests.ListOrdersRequest
- func CreateTestOrder() *orderModels.Order
- func CreateTestOrderItem() *orderModels.OrderItem
- func CreateTestProduct() *catalogModels.Product
- func CreateTestProductRequest() *catalogRequests.CreateProductRequest
- func CreateTestService() *catalogModels.Service
- func CreateTestServiceRequest() *catalogRequests.CreateServiceRequest
- func CreateTestUpdateOrderRequest() *orderRequests.UpdateOrderRequest
- func CreateTestUpdateOrderStatusRequest() *orderRequests.UpdateOrderStatusRequest
- func CreateTestUserContext() *auth.UserContext
- func GetEnvAsBoolOrDefault(key string, defaultValue bool) bool
- func GetEnvAsIntOrDefault(key string, defaultValue int) int
- func GetEnvOrDefault(key, defaultValue string) string
- func GetPostgresManager(t *testing.T, dbManager db.DBManager) *db.PostgresManager
- func IntPtr(i int) *int
- func LoadTestDatabaseConfig() config.MultiDatabaseConfig
- func MockBulkDelete(mockDB *MockDatabase, recordCount int)
- func MockBulkInsert(mockDB *MockDatabase, recordCount int)
- func MockBulkUpdate(mockDB *MockDatabase, recordCount int)
- func MockCheckConstraintViolation(mockDB *MockDatabase, constraintName string)
- func MockConcurrentAccess(mockDB *MockDatabase, conflictError string)
- func MockConnectionPoolExhaustion(mockDB *MockDatabase)
- func MockConnectionPoolRecovery(mockDB *MockDatabase)
- func MockContextCancellation(mockDB *MockDatabase)
- func MockDatabaseConnectionError(mockDB *MockDatabase)
- func MockDatabaseError(mockDB *MockDatabase, errorMsg string)
- func MockDeadlockDetection(mockDB *MockDatabase)
- func MockForeignKeyConstraintViolation(mockDB *MockDatabase, constraintName string)
- func MockHealthyDatabase(mockDB *MockDatabase)
- func MockMigrationDown(mockDB *MockDatabase, version int)
- func MockMigrationUp(mockDB *MockDatabase, version int)
- func MockNoRowsFound(mockDB *MockDatabase)
- func MockPaginatedQuery(mockDB *MockDatabase, totalRecords, pageSize int)
- func MockQueryError(mockDB *MockDatabase, errorMsg string)
- func MockQueryTimeout(mockDB *MockDatabase)
- func MockSlowQuery(mockDB *MockDatabase, delay time.Duration)
- func MockSuccessfulDelete(mockDB *MockDatabase, rowsAffected int64)
- func MockSuccessfulInsert(mockDB *MockDatabase, expectedID int64)
- func MockSuccessfulTransaction(mockDB *MockDatabase, mockTx *MockTransaction)
- func MockSuccessfulUpdate(mockDB *MockDatabase, rowsAffected int64)
- func MockTransactionCommitError(mockDB *MockDatabase, mockTx *MockTransaction)
- func MockTransactionRollback(mockDB *MockDatabase, mockTx *MockTransaction, errorMsg string)
- func MockUnhealthyDatabase(mockDB *MockDatabase, errorMsg string)
- func MockUniqueConstraintViolation(mockDB *MockDatabase, constraintName string)
- func SetupTestDB(t *testing.T) *gorm.DB
- func SetupTestDatabase(t *testing.T) (db.DBManager, func())
- func StringPtr(s string) *string
- func TimePtr(t time.Time) *time.Time
- func ValidateTestData(t *testing.T, data interface{})
- func ValidateTestFixtures(t *testing.T)
- func VerifyRecordDeleted(t *testing.T, mockDB *MockDatabase, tableName, id string)
- func VerifyRecordExists(t *testing.T, mockDB *MockDatabase, tableName, id string)
- func VerifyRecordUpdated(t *testing.T, mockDB *MockDatabase, tableName, id string, expectedVersion int)
- type MockDatabase
- func (m *MockDatabase) Begin() (*sql.Tx, error)
- func (m *MockDatabase) BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
- func (m *MockDatabase) Close() error
- func (m *MockDatabase) Exec(query string, args ...interface{}) (sql.Result, error)
- func (m *MockDatabase) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
- func (m *MockDatabase) Ping() error
- func (m *MockDatabase) PingContext(ctx context.Context) error
- func (m *MockDatabase) Prepare(query string) (*sql.Stmt, error)
- func (m *MockDatabase) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
- func (m *MockDatabase) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (m *MockDatabase) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
- func (m *MockDatabase) QueryRow(query string, args ...interface{}) *sql.Row
- type MockResult
- type MockTransaction
- func (m *MockTransaction) Commit() error
- func (m *MockTransaction) Exec(query string, args ...interface{}) (sql.Result, error)
- func (m *MockTransaction) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
- func (m *MockTransaction) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (m *MockTransaction) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
- func (m *MockTransaction) QueryRow(query string, args ...interface{}) *sql.Row
- func (m *MockTransaction) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
- func (m *MockTransaction) Rollback() error
Constants ¶
const ( TestUserID = "user-123" TestOrgID = "org-123" TestSellerOrgID = "seller-org-456" TestOrderID = "order-789" TestCatalogItemID = "item-456" TestSKU = "TEST-SKU-001" TestOrderNumber = "ORD-2024-001" )
Test constants
Variables ¶
This section is empty.
Functions ¶
func AssertDatabaseInteraction ¶
func AssertDatabaseInteraction(t *testing.T, mockDB *MockDatabase, expectedCalls int)
Test assertion helpers
func AssertQueryContains ¶
func AssertQueryContains(t *testing.T, mockDB *MockDatabase, expectedSubstring string)
func AssertQueryExecuted ¶
func AssertQueryExecuted(t *testing.T, mockDB *MockDatabase, expectedQuery string)
func AssertTransactionCommitted ¶
func AssertTransactionCommitted(t *testing.T, mockTx *MockTransaction)
func AssertTransactionRolledBack ¶
func AssertTransactionRolledBack(t *testing.T, mockTx *MockTransaction)
func CleanupMockTransaction ¶
func CleanupMockTransaction(mockTx *MockTransaction)
func CleanupTestDB ¶
CleanupTestDB cleans up the test database
func CreateTestAAAUser ¶
CreateTestAAAUser creates a test AAA user
func CreateTestCatalogFilter ¶
func CreateTestCatalogFilter() *catalogRequests.CatalogFilter
CreateTestCatalogFilter creates a test catalog filter
func CreateTestCatalogItem ¶
func CreateTestCatalogItem(itemType catalogModels.CatalogItemType) *catalogModels.CatalogItem
Catalog fixtures
func CreateTestCatalogItemRequest ¶
func CreateTestCatalogItemRequest() *catalogRequests.CreateCatalogItemRequest
func CreateTestCreateOrderRequest ¶
func CreateTestCreateOrderRequest() *orderRequests.CreateOrderRequest
func CreateTestLabour ¶
func CreateTestLabour() *catalogModels.Labour
func CreateTestLabourRequest ¶
func CreateTestLabourRequest() *catalogRequests.CreateLabourRequest
func CreateTestListOrdersRequest ¶
func CreateTestListOrdersRequest() *orderRequests.ListOrdersRequest
func CreateTestOrderItem ¶
func CreateTestOrderItem() *orderModels.OrderItem
func CreateTestProduct ¶
func CreateTestProduct() *catalogModels.Product
func CreateTestProductRequest ¶
func CreateTestProductRequest() *catalogRequests.CreateProductRequest
func CreateTestService ¶
func CreateTestService() *catalogModels.Service
func CreateTestServiceRequest ¶
func CreateTestServiceRequest() *catalogRequests.CreateServiceRequest
func CreateTestUpdateOrderRequest ¶
func CreateTestUpdateOrderRequest() *orderRequests.UpdateOrderRequest
func CreateTestUpdateOrderStatusRequest ¶
func CreateTestUpdateOrderStatusRequest() *orderRequests.UpdateOrderStatusRequest
func CreateTestUserContext ¶
func CreateTestUserContext() *auth.UserContext
CreateTestUserContext creates a test user context
func GetEnvAsBoolOrDefault ¶
GetEnvAsBoolOrDefault gets an environment variable as a boolean with a fallback value
func GetEnvAsIntOrDefault ¶
GetEnvAsIntOrDefault gets an environment variable as an integer with a fallback value
func GetEnvOrDefault ¶
GetEnvOrDefault gets an environment variable with a fallback value
func GetPostgresManager ¶
GetPostgresManager extracts PostgresManager from DBManager for testing
func LoadTestDatabaseConfig ¶
func LoadTestDatabaseConfig() config.MultiDatabaseConfig
LoadTestDatabaseConfig loads database configuration for integration tests from environment variables
func MockBulkDelete ¶
func MockBulkDelete(mockDB *MockDatabase, recordCount int)
func MockBulkInsert ¶
func MockBulkInsert(mockDB *MockDatabase, recordCount int)
Bulk operation test helpers
func MockBulkUpdate ¶
func MockBulkUpdate(mockDB *MockDatabase, recordCount int)
func MockCheckConstraintViolation ¶
func MockCheckConstraintViolation(mockDB *MockDatabase, constraintName string)
func MockConcurrentAccess ¶
func MockConcurrentAccess(mockDB *MockDatabase, conflictError string)
Concurrency test scenarios
func MockConnectionPoolExhaustion ¶
func MockConnectionPoolExhaustion(mockDB *MockDatabase)
Connection pool test helpers
func MockConnectionPoolRecovery ¶
func MockConnectionPoolRecovery(mockDB *MockDatabase)
func MockContextCancellation ¶
func MockContextCancellation(mockDB *MockDatabase)
func MockDatabaseConnectionError ¶
func MockDatabaseConnectionError(mockDB *MockDatabase)
func MockDatabaseError ¶
func MockDatabaseError(mockDB *MockDatabase, errorMsg string)
func MockDeadlockDetection ¶
func MockDeadlockDetection(mockDB *MockDatabase)
func MockForeignKeyConstraintViolation ¶
func MockForeignKeyConstraintViolation(mockDB *MockDatabase, constraintName string)
func MockHealthyDatabase ¶
func MockHealthyDatabase(mockDB *MockDatabase)
Connection and health check scenarios
func MockMigrationDown ¶
func MockMigrationDown(mockDB *MockDatabase, version int)
func MockMigrationUp ¶
func MockMigrationUp(mockDB *MockDatabase, version int)
Migration test helpers
func MockNoRowsFound ¶
func MockNoRowsFound(mockDB *MockDatabase)
func MockPaginatedQuery ¶
func MockPaginatedQuery(mockDB *MockDatabase, totalRecords, pageSize int)
Pagination test helpers
func MockQueryError ¶
func MockQueryError(mockDB *MockDatabase, errorMsg string)
func MockQueryTimeout ¶
func MockQueryTimeout(mockDB *MockDatabase)
func MockSlowQuery ¶
func MockSlowQuery(mockDB *MockDatabase, delay time.Duration)
Performance and timeout scenarios
func MockSuccessfulDelete ¶
func MockSuccessfulDelete(mockDB *MockDatabase, rowsAffected int64)
func MockSuccessfulInsert ¶
func MockSuccessfulInsert(mockDB *MockDatabase, expectedID int64)
Common database test scenarios
func MockSuccessfulTransaction ¶
func MockSuccessfulTransaction(mockDB *MockDatabase, mockTx *MockTransaction)
Transaction test scenarios
func MockSuccessfulUpdate ¶
func MockSuccessfulUpdate(mockDB *MockDatabase, rowsAffected int64)
func MockTransactionCommitError ¶
func MockTransactionCommitError(mockDB *MockDatabase, mockTx *MockTransaction)
func MockTransactionRollback ¶
func MockTransactionRollback(mockDB *MockDatabase, mockTx *MockTransaction, errorMsg string)
func MockUnhealthyDatabase ¶
func MockUnhealthyDatabase(mockDB *MockDatabase, errorMsg string)
func MockUniqueConstraintViolation ¶
func MockUniqueConstraintViolation(mockDB *MockDatabase, constraintName string)
Constraint violation scenarios
func SetupTestDB ¶
SetupTestDB creates an in-memory SQLite database for testing
func SetupTestDatabase ¶
SetupTestDatabase creates a test database manager for integration tests
func ValidateTestData ¶
Test data validation helpers
func ValidateTestFixtures ¶
func VerifyRecordDeleted ¶
func VerifyRecordDeleted(t *testing.T, mockDB *MockDatabase, tableName, id string)
func VerifyRecordExists ¶
func VerifyRecordExists(t *testing.T, mockDB *MockDatabase, tableName, id string)
Database state verification helpers
func VerifyRecordUpdated ¶
func VerifyRecordUpdated(t *testing.T, mockDB *MockDatabase, tableName, id string, expectedVersion int)
Types ¶
type MockDatabase ¶
MockDatabase represents a comprehensive mock database for testing
func (*MockDatabase) Close ¶
func (m *MockDatabase) Close() error
func (*MockDatabase) Exec ¶
func (m *MockDatabase) Exec(query string, args ...interface{}) (sql.Result, error)
func (*MockDatabase) ExecContext ¶
func (*MockDatabase) Ping ¶
func (m *MockDatabase) Ping() error
func (*MockDatabase) PingContext ¶
func (m *MockDatabase) PingContext(ctx context.Context) error
func (*MockDatabase) PrepareContext ¶
func (*MockDatabase) Query ¶
func (m *MockDatabase) Query(query string, args ...interface{}) (*sql.Rows, error)
func (*MockDatabase) QueryContext ¶
type MockResult ¶
MockResult represents a mock SQL result
func SetupMockResult ¶
func SetupMockResult(lastInsertID, rowsAffected int64) *MockResult
func (*MockResult) LastInsertId ¶
func (m *MockResult) LastInsertId() (int64, error)
func (*MockResult) RowsAffected ¶
func (m *MockResult) RowsAffected() (int64, error)
type MockTransaction ¶
MockTransaction represents a mock SQL transaction
func SetupMockTransaction ¶
func SetupMockTransaction() *MockTransaction
func (*MockTransaction) Commit ¶
func (m *MockTransaction) Commit() error
func (*MockTransaction) Exec ¶
func (m *MockTransaction) Exec(query string, args ...interface{}) (sql.Result, error)
func (*MockTransaction) ExecContext ¶
func (*MockTransaction) Query ¶
func (m *MockTransaction) Query(query string, args ...interface{}) (*sql.Rows, error)
func (*MockTransaction) QueryContext ¶
func (*MockTransaction) QueryRow ¶
func (m *MockTransaction) QueryRow(query string, args ...interface{}) *sql.Row
func (*MockTransaction) QueryRowContext ¶
func (*MockTransaction) Rollback ¶
func (m *MockTransaction) Rollback() error