| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package assert
- import (
- "reflect"
- "github.com/v2ray/v2ray-core/common/serial"
- )
- func (this *Assert) Pointer(value interface{}) *PointerSubject {
- return &PointerSubject{
- Subject: Subject{
- a: this,
- disp: serial.PointerToString(value),
- },
- value: value,
- }
- }
- type PointerSubject struct {
- Subject
- value interface{}
- }
- func (subject *PointerSubject) Equals(expectation interface{}) {
- if subject.value != expectation {
- subject.Fail("is equal to", serial.PointerToString(expectation))
- }
- }
- func (subject *PointerSubject) IsNil() {
- if subject.value == nil {
- return
- }
- valueType := reflect.TypeOf(subject.value)
- nilType := reflect.Zero(valueType)
- realValue := reflect.ValueOf(subject.value)
- if nilType != realValue {
- subject.Fail("is", "nil")
- }
- }
- func (subject *PointerSubject) IsNotNil() {
- if subject.value == nil {
- subject.Fail("is not", "nil")
- }
- valueType := reflect.TypeOf(subject.value)
- nilType := reflect.Zero(valueType)
- realValue := reflect.ValueOf(subject.value)
- if nilType == realValue {
- subject.Fail("is not", "nil")
- }
- }
|