v0
This commit is contained in:
104
test/test_helpers.go
Normal file
104
test/test_helpers.go
Normal file
@ -0,0 +1,104 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TestConfig implements the ConfigProvider interface for testing
|
||||
type TestConfig struct {
|
||||
values map[string]string
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetString(key string) string {
|
||||
return c.values[key]
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetInt(key string) int {
|
||||
if value, exists := c.values[key]; exists {
|
||||
if intVal, err := strconv.Atoi(value); err == nil {
|
||||
return intVal
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetBool(key string) bool {
|
||||
if value, exists := c.values[key]; exists {
|
||||
if boolVal, err := strconv.ParseBool(value); err == nil {
|
||||
return boolVal
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetDuration(key string) time.Duration {
|
||||
if value, exists := c.values[key]; exists {
|
||||
if duration, err := time.ParseDuration(value); err == nil {
|
||||
return duration
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetStringSlice(key string) []string {
|
||||
if value, exists := c.values[key]; exists {
|
||||
if value == "" {
|
||||
return []string{}
|
||||
}
|
||||
// Simple split by comma for testing
|
||||
return []string{value}
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
||||
func (c *TestConfig) IsSet(key string) bool {
|
||||
_, exists := c.values[key]
|
||||
return exists
|
||||
}
|
||||
|
||||
func (c *TestConfig) Validate() error {
|
||||
return nil // Skip validation for tests
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetDatabaseDSN() string {
|
||||
return "host=" + c.GetString("DB_HOST") +
|
||||
" port=" + c.GetString("DB_PORT") +
|
||||
" user=" + c.GetString("DB_USER") +
|
||||
" password=" + c.GetString("DB_PASSWORD") +
|
||||
" dbname=" + c.GetString("DB_NAME") +
|
||||
" sslmode=" + c.GetString("DB_SSLMODE")
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetServerAddress() string {
|
||||
return c.GetString("SERVER_HOST") + ":" + c.GetString("SERVER_PORT")
|
||||
}
|
||||
|
||||
func (c *TestConfig) GetMetricsAddress() string {
|
||||
return c.GetString("SERVER_HOST") + ":9090"
|
||||
}
|
||||
|
||||
func (c *TestConfig) IsDevelopment() bool {
|
||||
return c.GetString("APP_ENV") == "test" || c.GetString("APP_ENV") == "development"
|
||||
}
|
||||
|
||||
func (c *TestConfig) IsProduction() bool {
|
||||
return c.GetString("APP_ENV") == "production"
|
||||
}
|
||||
|
||||
// NewTestConfig creates a test configuration with default values
|
||||
func NewTestConfig() *TestConfig {
|
||||
return &TestConfig{
|
||||
values: map[string]string{
|
||||
"DB_HOST": "localhost",
|
||||
"DB_PORT": "5432",
|
||||
"DB_USER": "kms_user",
|
||||
"DB_PASSWORD": "kms_password",
|
||||
"DB_NAME": "kms_db",
|
||||
"DB_SSLMODE": "disable",
|
||||
"SERVER_HOST": "localhost",
|
||||
"SERVER_PORT": "8080",
|
||||
"APP_ENV": "test",
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user