1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-23 02:26:49 -05:00
v2fly/testing/assert/bytes.go

44 lines
939 B
Go
Raw Normal View History

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-04-27 07:31:09 -04:00
subject.FailWithMessage(fmt.Sprint("Bytes are different: ", b, " vs ", subject.value[idx], " at pos ", 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))
}
}