mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-11-02 09:17:55 -04:00
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"))
|
|
}
|
|
}
|