-
Notifications
You must be signed in to change notification settings - Fork 1
/
types_test.go
60 lines (48 loc) · 995 Bytes
/
types_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package gearman // import "github.com/nathanaelle/gearman/v2"
import (
"bytes"
"fmt"
"testing"
"github.com/nathanaelle/gearman/v2/protocol"
)
func Test_Opaque(t *testing.T) {
var err error
err = opaqueTest([]byte{})
if err != nil {
t.Errorf("got error %+v", err)
return
}
err = opaqueTest([]byte("hello"))
if err != nil {
t.Errorf("got error %+v", err)
return
}
}
func opaqueTest(data []byte) error {
var fn Function
var tid TaskID
opaq := protocol.Opacify(data)
err := fn.Cast(opaq)
if err != nil {
return err
}
raw, err := fn.MarshalGearman()
if err != nil {
return err
}
if !bytes.Equal(data, raw) {
return fmt.Errorf("%s MarshalGearman() expected [%v] got [%v]", "Function", data, raw)
}
err = tid.Cast(opaq)
if err != nil {
return err
}
raw, err = tid.MarshalGearman()
if err != nil {
return err
}
if !bytes.Equal(data, raw) {
return fmt.Errorf("%s MarshalGearman() expected [%v] got [%v]", "TaskID", data, raw)
}
return nil
}