address.go 1.6 KB

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