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.FirstIP.String() != "10.3.0.0" {
  16. t.Errorf("FirstIP mismatch, expected 10.3.0.0, got %s", cfg.FirstIP)
  17. }
  18. if cfg.LastIP.String() != "10.3.255.0" {
  19. t.Errorf("LastIP mismatch, expected 10.3.255.0, got %s", cfg.LastIP)
  20. }
  21. if cfg.HostSubnet != 24 {
  22. t.Errorf("HostSubnet mismatch: expected 24, got %d", cfg.HostSubnet)
  23. }
  24. }
  25. func TestConfigOverrides(t *testing.T) {
  26. s := `{ "Network": "10.3.0.0/16", "FirstIP": "10.3.5.0", "LastIP": "10.3.8.0", "HostSubnet": 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.FirstIP.String() != "10.3.5.0" {
  36. t.Errorf("FirstIP mismatch: expected 10.3.5.0, got %s", cfg.FirstIP)
  37. }
  38. if cfg.LastIP.String() != "10.3.8.0" {
  39. t.Errorf("LastIP mismatch: expected 10.3.8.0, got %s", cfg.LastIP)
  40. }
  41. if cfg.HostSubnet != 28 {
  42. t.Errorf("HostSubnet mismatch: expected 28, got %d", cfg.HostSubnet)
  43. }
  44. }