mirror of https://github.com/v2ray/v2ray-core
62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
![]() |
package unit
|
||
|
|
||
|
import (
|
||
|
v2net "github.com/v2ray/v2ray-core/common/net"
|
||
|
"github.com/v2ray/v2ray-core/common/serial"
|
||
|
"github.com/v2ray/v2ray-core/testing/assert"
|
||
|
)
|
||
|
|
||
|
func Address(value v2net.Address) *AddressSubject {
|
||
|
return &AddressSubject{value: value}
|
||
|
}
|
||
|
|
||
|
type AddressSubject struct {
|
||
|
*assert.Subject
|
||
|
value v2net.Address
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) Named(name string) *AddressSubject {
|
||
|
subject.Subject.Named(name)
|
||
|
return subject
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) DisplayString() string {
|
||
|
return subject.Subject.DisplayString(subject.value.String())
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsIPv4() {
|
||
|
if !subject.value.IsIPv4() {
|
||
|
subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("an IPv4 address"))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsNotIPv4() {
|
||
|
if subject.value.IsIPv4() {
|
||
|
subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("an IPv4 address"))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsIPv6() {
|
||
|
if !subject.value.IsIPv6() {
|
||
|
subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("an IPv6 address"))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsNotIPv6() {
|
||
|
if subject.value.IsIPv6() {
|
||
|
subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("an IPv6 address"))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsDomain() {
|
||
|
if !subject.value.IsDomain() {
|
||
|
subject.Fail(subject.DisplayString(), "is", serial.StringLiteral("a domain address"))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (subject *AddressSubject) IsNotDomain() {
|
||
|
if subject.value.IsDomain() {
|
||
|
subject.Fail(subject.DisplayString(), "is not", serial.StringLiteral("a domain address"))
|
||
|
}
|
||
|
}
|