config_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package subnet
  2. import (
  3. "testing"
  4. )
  5. func TestConfigDefaults(t *testing.T) {
  6. s := `{ "network": "10.3.0.0/16" }`
  7. cfg, err := ParseConfig(s)
  8. if err != nil {
  9. t.Fatalf("ParseConfig failed: %s", err)
  10. }
  11. expectedNet := "10.3.0.0/16"
  12. if cfg.Network.String() != expectedNet {
  13. t.Errorf("Network mismatch: expected %s, got %s", expectedNet, cfg.Network)
  14. }
  15. if cfg.SubnetMin.String() != "10.3.1.0" {
  16. t.Errorf("SubnetMin mismatch, expected 10.3.1.0, got %s", cfg.SubnetMin)
  17. }
  18. if cfg.SubnetMax.String() != "10.3.255.0" {
  19. t.Errorf("SubnetMax mismatch, expected 10.3.255.0, got %s", cfg.SubnetMax)
  20. }
  21. if cfg.SubnetLen != 24 {
  22. t.Errorf("SubnetLen mismatch: expected 24, got %d", cfg.SubnetLen)
  23. }
  24. }
  25. func TestConfigOverrides(t *testing.T) {
  26. s := `{ "Network": "10.3.0.0/16", "SubnetMin": "10.3.5.0", "SubnetMax": "10.3.8.0", "SubnetLen": 28 }`
  27. cfg, err := ParseConfig(s)
  28. if err != nil {
  29. t.Fatalf("ParseConfig failed: %s", err)
  30. }
  31. expectedNet := "10.3.0.0/16"
  32. if cfg.Network.String() != expectedNet {
  33. t.Errorf("Network mismatch: expected %s, got %s", expectedNet, cfg.Network)
  34. }
  35. if cfg.SubnetMin.String() != "10.3.5.0" {
  36. t.Errorf("SubnetMin mismatch: expected 10.3.5.0, got %s", cfg.SubnetMin)
  37. }
  38. if cfg.SubnetMax.String() != "10.3.8.0" {
  39. t.Errorf("SubnetMax mismatch: expected 10.3.8.0, got %s", cfg.SubnetMax)
  40. }
  41. if cfg.SubnetLen != 28 {
  42. t.Errorf("SubnetLen mismatch: expected 28, got %d", cfg.SubnetLen)
  43. }
  44. }