Pulse/internal/mock/integration_additional_test.go
2026-04-11 13:50:38 +01:00

122 lines
4.8 KiB
Go

package mock
import (
"testing"
"time"
)
func TestLoadMockConfigInvalidValuesFallbackToDefaults(t *testing.T) {
t.Setenv("PULSE_MOCK_NODES", "-1")
t.Setenv("PULSE_MOCK_VMS_PER_NODE", "not-a-number")
t.Setenv("PULSE_MOCK_LXCS_PER_NODE", "-3")
t.Setenv("PULSE_MOCK_DOCKER_HOSTS", "oops")
t.Setenv("PULSE_MOCK_DOCKER_CONTAINERS", "-2")
t.Setenv("PULSE_MOCK_GENERIC_HOSTS", "bad")
t.Setenv("PULSE_MOCK_K8S_CLUSTERS", "-1")
t.Setenv("PULSE_MOCK_K8S_NODES", "x")
t.Setenv("PULSE_MOCK_K8S_PODS", "-1")
t.Setenv("PULSE_MOCK_K8S_DEPLOYMENTS", "nope")
t.Setenv("PULSE_MOCK_RANDOM_METRICS", "definitely")
t.Setenv("PULSE_MOCK_STOPPED_PERCENT", "nan%")
t.Setenv("PULSE_MOCK_UPDATE_INTERVAL", "later")
cfg := LoadMockConfig()
if cfg.NodeCount != DefaultConfig.NodeCount {
t.Fatalf("NodeCount = %d, want default %d", cfg.NodeCount, DefaultConfig.NodeCount)
}
if cfg.VMsPerNode != DefaultConfig.VMsPerNode {
t.Fatalf("VMsPerNode = %d, want default %d", cfg.VMsPerNode, DefaultConfig.VMsPerNode)
}
if cfg.LXCsPerNode != DefaultConfig.LXCsPerNode {
t.Fatalf("LXCsPerNode = %d, want default %d", cfg.LXCsPerNode, DefaultConfig.LXCsPerNode)
}
if cfg.DockerHostCount != DefaultConfig.DockerHostCount {
t.Fatalf("DockerHostCount = %d, want default %d", cfg.DockerHostCount, DefaultConfig.DockerHostCount)
}
if cfg.DockerContainersPerHost != DefaultConfig.DockerContainersPerHost {
t.Fatalf("DockerContainersPerHost = %d, want default %d", cfg.DockerContainersPerHost, DefaultConfig.DockerContainersPerHost)
}
if cfg.GenericHostCount != DefaultConfig.GenericHostCount {
t.Fatalf("GenericHostCount = %d, want default %d", cfg.GenericHostCount, DefaultConfig.GenericHostCount)
}
if cfg.K8sClusterCount != DefaultConfig.K8sClusterCount {
t.Fatalf("K8sClusterCount = %d, want default %d", cfg.K8sClusterCount, DefaultConfig.K8sClusterCount)
}
if cfg.K8sNodesPerCluster != DefaultConfig.K8sNodesPerCluster {
t.Fatalf("K8sNodesPerCluster = %d, want default %d", cfg.K8sNodesPerCluster, DefaultConfig.K8sNodesPerCluster)
}
if cfg.K8sPodsPerCluster != DefaultConfig.K8sPodsPerCluster {
t.Fatalf("K8sPodsPerCluster = %d, want default %d", cfg.K8sPodsPerCluster, DefaultConfig.K8sPodsPerCluster)
}
if cfg.K8sDeploymentsPerCluster != DefaultConfig.K8sDeploymentsPerCluster {
t.Fatalf("K8sDeploymentsPerCluster = %d, want default %d", cfg.K8sDeploymentsPerCluster, DefaultConfig.K8sDeploymentsPerCluster)
}
if cfg.RandomMetrics != DefaultConfig.RandomMetrics {
t.Fatalf("RandomMetrics = %t, want default %t", cfg.RandomMetrics, DefaultConfig.RandomMetrics)
}
if cfg.StoppedPercent != DefaultConfig.StoppedPercent {
t.Fatalf("StoppedPercent = %f, want default %f", cfg.StoppedPercent, DefaultConfig.StoppedPercent)
}
if cfg.UpdateInterval != DefaultConfig.UpdateInterval {
t.Fatalf("UpdateInterval = %s, want default %s", cfg.UpdateInterval, DefaultConfig.UpdateInterval)
}
}
func TestLoadMockConfigValidValuesOverrideDefaults(t *testing.T) {
t.Setenv("PULSE_MOCK_NODES", "9")
t.Setenv("PULSE_MOCK_VMS_PER_NODE", "7")
t.Setenv("PULSE_MOCK_LXCS_PER_NODE", "4")
t.Setenv("PULSE_MOCK_DOCKER_HOSTS", "5")
t.Setenv("PULSE_MOCK_DOCKER_CONTAINERS", "11")
t.Setenv("PULSE_MOCK_GENERIC_HOSTS", "3")
t.Setenv("PULSE_MOCK_K8S_CLUSTERS", "2")
t.Setenv("PULSE_MOCK_K8S_NODES", "8")
t.Setenv("PULSE_MOCK_K8S_PODS", "26")
t.Setenv("PULSE_MOCK_K8S_DEPLOYMENTS", "6")
t.Setenv("PULSE_MOCK_RANDOM_METRICS", "false")
t.Setenv("PULSE_MOCK_STOPPED_PERCENT", "35")
t.Setenv("PULSE_MOCK_UPDATE_INTERVAL", "15s")
cfg := LoadMockConfig()
if cfg.NodeCount != 9 {
t.Fatalf("NodeCount = %d, want 9", cfg.NodeCount)
}
if cfg.VMsPerNode != 7 {
t.Fatalf("VMsPerNode = %d, want 7", cfg.VMsPerNode)
}
if cfg.LXCsPerNode != 4 {
t.Fatalf("LXCsPerNode = %d, want 4", cfg.LXCsPerNode)
}
if cfg.DockerHostCount != 5 {
t.Fatalf("DockerHostCount = %d, want 5", cfg.DockerHostCount)
}
if cfg.DockerContainersPerHost != 11 {
t.Fatalf("DockerContainersPerHost = %d, want 11", cfg.DockerContainersPerHost)
}
if cfg.GenericHostCount != 3 {
t.Fatalf("GenericHostCount = %d, want 3", cfg.GenericHostCount)
}
if cfg.K8sClusterCount != 2 {
t.Fatalf("K8sClusterCount = %d, want 2", cfg.K8sClusterCount)
}
if cfg.K8sNodesPerCluster != 8 {
t.Fatalf("K8sNodesPerCluster = %d, want 8", cfg.K8sNodesPerCluster)
}
if cfg.K8sPodsPerCluster != 26 {
t.Fatalf("K8sPodsPerCluster = %d, want 26", cfg.K8sPodsPerCluster)
}
if cfg.K8sDeploymentsPerCluster != 6 {
t.Fatalf("K8sDeploymentsPerCluster = %d, want 6", cfg.K8sDeploymentsPerCluster)
}
if cfg.RandomMetrics {
t.Fatalf("RandomMetrics = %t, want false", cfg.RandomMetrics)
}
if cfg.StoppedPercent != 0.35 {
t.Fatalf("StoppedPercent = %f, want 0.35", cfg.StoppedPercent)
}
if cfg.UpdateInterval != 15*time.Second {
t.Fatalf("UpdateInterval = %s, want 15s", cfg.UpdateInterval)
}
}