ip_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package opts
  2. import (
  3. "net"
  4. "testing"
  5. )
  6. func TestIpOptString(t *testing.T) {
  7. addresses := []string{"", "0.0.0.0"}
  8. var ip net.IP
  9. for _, address := range addresses {
  10. stringAddress := NewIPOpt(&ip, address).String()
  11. if stringAddress != address {
  12. t.Fatalf("IpOpt string should be `%s`, not `%s`", address, stringAddress)
  13. }
  14. }
  15. }
  16. func TestNewIpOptInvalidDefaultVal(t *testing.T) {
  17. ip := net.IPv4(127, 0, 0, 1)
  18. defaultVal := "Not an ip"
  19. ipOpt := NewIPOpt(&ip, defaultVal)
  20. expected := "127.0.0.1"
  21. if ipOpt.String() != expected {
  22. t.Fatalf("Expected [%v], got [%v]", expected, ipOpt.String())
  23. }
  24. }
  25. func TestNewIpOptValidDefaultVal(t *testing.T) {
  26. ip := net.IPv4(127, 0, 0, 1)
  27. defaultVal := "192.168.1.1"
  28. ipOpt := NewIPOpt(&ip, defaultVal)
  29. expected := "192.168.1.1"
  30. if ipOpt.String() != expected {
  31. t.Fatalf("Expected [%v], got [%v]", expected, ipOpt.String())
  32. }
  33. }
  34. func TestIpOptSetInvalidVal(t *testing.T) {
  35. ip := net.IPv4(127, 0, 0, 1)
  36. ipOpt := &IPOpt{IP: &ip}
  37. invalidIP := "invalid ip"
  38. expectedError := "invalid ip is not an ip address"
  39. err := ipOpt.Set(invalidIP)
  40. if err == nil || err.Error() != expectedError {
  41. t.Fatalf("Expected an Error with [%v], got [%v]", expectedError, err.Error())
  42. }
  43. }