address.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package assert
  2. import (
  3. v2net "github.com/v2ray/v2ray-core/common/net"
  4. "github.com/v2ray/v2ray-core/common/serial"
  5. "github.com/v2ray/v2ray-core/testing/assert"
  6. )
  7. func Address(value v2net.Address) *AddressSubject {
  8. return &AddressSubject{value: value}
  9. }
  10. type AddressSubject struct {
  11. assert.Subject
  12. value v2net.Address
  13. }
  14. func (subject *AddressSubject) Named(name string) *AddressSubject {
  15. subject.Subject.Named(name)
  16. return subject
  17. }
  18. func (subject *AddressSubject) DisplayString() string {
  19. return subject.Subject.DisplayString(subject.value.String())
  20. }
  21. func (subject *AddressSubject) IsIPv4() {
  22. if !subject.value.IsIPv4() {
  23. subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("an IPv4 address"))
  24. }
  25. }
  26. func (subject *AddressSubject) IsNotIPv4() {
  27. if subject.value.IsIPv4() {
  28. subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("an IPv4 address"))
  29. }
  30. }
  31. func (subject *AddressSubject) IsIPv6() {
  32. if !subject.value.IsIPv6() {
  33. subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("an IPv6 address"))
  34. }
  35. }
  36. func (subject *AddressSubject) IsNotIPv6() {
  37. if subject.value.IsIPv6() {
  38. subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("an IPv6 address"))
  39. }
  40. }
  41. func (subject *AddressSubject) IsDomain() {
  42. if !subject.value.IsDomain() {
  43. subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("a domain address"))
  44. }
  45. }
  46. func (subject *AddressSubject) IsNotDomain() {
  47. if subject.value.IsDomain() {
  48. subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("a domain address"))
  49. }
  50. }