2016-05-24 15:55:46 -04:00
|
|
|
package assert
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
|
2017-02-06 17:25:52 -05:00
|
|
|
"fmt"
|
|
|
|
|
2016-08-20 14:55:45 -04:00
|
|
|
"v2ray.com/core/common/serial"
|
2016-05-24 15:55:46 -04:00
|
|
|
)
|
|
|
|
|
2016-11-27 15:39:09 -05:00
|
|
|
func (v *Assert) Bytes(value []byte) *BytesSubject {
|
2016-05-24 15:55:46 -04:00
|
|
|
return &BytesSubject{
|
|
|
|
Subject: Subject{
|
|
|
|
disp: serial.BytesToHexString(value),
|
2016-11-27 15:39:09 -05:00
|
|
|
a: v,
|
2016-05-24 15:55:46 -04:00
|
|
|
},
|
|
|
|
value: value,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
type BytesSubject struct {
|
|
|
|
Subject
|
|
|
|
value []byte
|
|
|
|
}
|
|
|
|
|
|
|
|
func (subject *BytesSubject) Equals(expectation []byte) {
|
2017-02-06 17:25:52 -05:00
|
|
|
if len(subject.value) != len(expectation) {
|
2017-02-07 17:33:02 -05:00
|
|
|
subject.FailWithMessage(fmt.Sprint("Bytes arrays have differen size: expected ", len(expectation), ", actual ", len(subject.value)))
|
|
|
|
return
|
2017-02-06 17:25:52 -05:00
|
|
|
}
|
|
|
|
for idx, b := range expectation {
|
|
|
|
if subject.value[idx] != b {
|
2017-02-07 17:33:02 -05:00
|
|
|
subject.FailWithMessage(fmt.Sprint("Bytes are different: ", b, " vs ", subject.value[idx]))
|
2017-02-06 17:25:52 -05:00
|
|
|
return
|
|
|
|
}
|
2016-05-24 15:55:46 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (subject *BytesSubject) NotEquals(expectation []byte) {
|
|
|
|
if bytes.Equal(subject.value, expectation) {
|
|
|
|
subject.Fail("is not equal to", serial.BytesToHexString(expectation))
|
|
|
|
}
|
|
|
|
}
|