forked from apache/cassandra-gocql-driver
-
Notifications
You must be signed in to change notification settings - Fork 57
/
marshal_1_boolean_test.go
48 lines (38 loc) · 1.32 KB
/
marshal_1_boolean_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
package gocql_test
import (
"testing"
"github.com/gocql/gocql"
"github.com/gocql/gocql/internal/tests/serialization"
"github.com/gocql/gocql/internal/tests/serialization/mod"
)
func TestMarshalBoolean(t *testing.T) {
tType := gocql.NewNativeType(4, gocql.TypeBoolean, "")
marshal := func(i interface{}) ([]byte, error) { return gocql.Marshal(tType, i) }
unmarshal := func(bytes []byte, i interface{}) error {
return gocql.Unmarshal(tType, bytes, i)
}
serialization.PositiveSet{
Data: nil,
Values: mod.Values{(*bool)(nil)}.AddVariants(mod.CustomType),
}.Run("[nil]nullable", t, marshal, unmarshal)
serialization.PositiveSet{
Data: nil,
Values: mod.Values{false}.AddVariants(mod.CustomType),
}.Run("[nil]unmarshal", t, nil, unmarshal)
serialization.PositiveSet{
Data: make([]byte, 0),
Values: mod.Values{false}.AddVariants(mod.All...),
}.Run("[]unmarshal", t, nil, unmarshal)
serialization.PositiveSet{
Data: []byte("\x00"),
Values: mod.Values{false}.AddVariants(mod.All...),
}.Run("zeros", t, marshal, unmarshal)
serialization.PositiveSet{
Data: []byte("\x01"),
Values: mod.Values{true}.AddVariants(mod.All...),
}.Run("[ff]unmarshal", t, nil, unmarshal)
serialization.PositiveSet{
Data: []byte("\xff"),
Values: mod.Values{true}.AddVariants(mod.All...),
}.Run("[01]", t, nil, unmarshal)
}