testutils

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2025 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
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 BoolPtr

func BoolPtr(b bool) *bool

func CleanupMockDatabase

func CleanupMockDatabase(mockDB *MockDatabase)

Cleanup helpers

func CleanupMockTransaction

func CleanupMockTransaction(mockTx *MockTransaction)

func CleanupTestDB

func CleanupTestDB(t *testing.T, db *gorm.DB)

CleanupTestDB cleans up the test database

func CreateTestAAAUser

func CreateTestAAAUser() *auth.AAAUser

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 CreateTestOrder

func CreateTestOrder() *orderModels.Order

Order fixtures

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

func GetEnvAsBoolOrDefault(key string, defaultValue bool) bool

GetEnvAsBoolOrDefault gets an environment variable as a boolean with a fallback value

func GetEnvAsIntOrDefault

func GetEnvAsIntOrDefault(key string, defaultValue int) int

GetEnvAsIntOrDefault gets an environment variable as an integer with a fallback value

func GetEnvOrDefault

func GetEnvOrDefault(key, defaultValue string) string

GetEnvOrDefault gets an environment variable with a fallback value

func GetPostgresManager

func GetPostgresManager(t *testing.T, dbManager db.DBManager) *db.PostgresManager

GetPostgresManager extracts PostgresManager from DBManager for testing

func IntPtr

func IntPtr(i int) *int

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

func SetupTestDB(t *testing.T) *gorm.DB

SetupTestDB creates an in-memory SQLite database for testing

func SetupTestDatabase

func SetupTestDatabase(t *testing.T) (db.DBManager, func())

SetupTestDatabase creates a test database manager for integration tests

func StringPtr

func StringPtr(s string) *string

func TimePtr

func TimePtr(t time.Time) *time.Time

Time helpers

func ValidateTestData

func ValidateTestData(t *testing.T, data interface{})

Test data validation helpers

func ValidateTestFixtures

func ValidateTestFixtures(t *testing.T)

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

type MockDatabase struct {
	mock.Mock
}

MockDatabase represents a comprehensive mock database for testing

func SetupMockDatabase

func SetupMockDatabase() *MockDatabase

Database test utilities

func (*MockDatabase) Begin

func (m *MockDatabase) Begin() (*sql.Tx, error)

func (*MockDatabase) BeginTx

func (m *MockDatabase) BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)

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 (m *MockDatabase) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)

func (*MockDatabase) Ping

func (m *MockDatabase) Ping() error

func (*MockDatabase) PingContext

func (m *MockDatabase) PingContext(ctx context.Context) error

func (*MockDatabase) Prepare

func (m *MockDatabase) Prepare(query string) (*sql.Stmt, error)

func (*MockDatabase) PrepareContext

func (m *MockDatabase) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)

func (*MockDatabase) Query

func (m *MockDatabase) Query(query string, args ...interface{}) (*sql.Rows, error)

func (*MockDatabase) QueryContext

func (m *MockDatabase) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)

func (*MockDatabase) QueryRow

func (m *MockDatabase) QueryRow(query string, args ...interface{}) *sql.Row

type MockResult

type MockResult struct {
	mock.Mock
}

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

type MockTransaction struct {
	mock.Mock
}

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 (m *MockTransaction) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)

func (*MockTransaction) Query

func (m *MockTransaction) Query(query string, args ...interface{}) (*sql.Rows, error)

func (*MockTransaction) QueryContext

func (m *MockTransaction) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)

func (*MockTransaction) QueryRow

func (m *MockTransaction) QueryRow(query string, args ...interface{}) *sql.Row

func (*MockTransaction) QueryRowContext

func (m *MockTransaction) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row

func (*MockTransaction) Rollback

func (m *MockTransaction) Rollback() error

Jump to

Keyboard shortcuts

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