Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
illia-li committed Sep 27, 2024
1 parent 40a54cb commit 26ca21d
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions marshal_2_tinyint_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package gocql

import (
"math/big"
"testing"

"github.com/gocql/gocql/marshal/tests/mod"
"github.com/gocql/gocql/marshal/tests/serialization"
"github.com/gocql/gocql/marshal/tinyint"
)

func TestMarshalTinyint(t *testing.T) {
names := [2]string{
"new",
"glob",
}

for i, name := range names {
t.Run(name, func(t *testing.T) {
marshal := tinyint.Marshal
unmarshal := tinyint.Unmarshal
if i == 1 {
marshal = func(i interface{}) ([]byte, error) { return Marshal(NativeType{proto: 4, typ: TypeTinyInt}, i) }
unmarshal = func(bytes []byte, i interface{}) error {
return Unmarshal(NativeType{proto: 4, typ: TypeTinyInt}, bytes, i)
}
}

serialization.Set{
Data: nil,
Values: mod.Values{
(*int8)(nil), (*int16)(nil), (*int32)(nil), (*int64)(nil), (*int)(nil),
(*uint8)(nil), (*uint16)(nil), (*uint32)(nil), (*uint64)(nil), (*uint)(nil),
(*string)(nil), (*big.Int)(nil), string(""),
}.AddVariants(mod.CustomType),
}.Run("[nil]nullable", t, marshal, unmarshal)

serialization.Set{
Data: nil,
Values: mod.Values{
int8(0), int16(0), int32(0), int64(0), int(0),
uint8(0), uint16(0), uint32(0), uint64(0), uint(0),
"", big.Int{},
}.AddVariants(mod.CustomType),
}.Run("[nil]unmarshal", t, nil, unmarshal)

serialization.Set{
Data: make([]byte, 0),
Values: mod.Values{
int8(0), int16(0), int32(0), int64(0), int(0),
uint8(0), uint16(0), uint32(0), uint64(0), uint(0),
"0", *big.NewInt(0),
}.AddVariants(mod.All...),
}.Run("[]unmarshal", t, nil, unmarshal)

serialization.Set{
Data: []byte("\x00"),
Values: mod.Values{
int8(0), int16(0), int32(0), int64(0), int(0),
uint8(0), uint16(0), uint32(0), uint64(0), uint(0),
"0", *big.NewInt(0),
}.AddVariants(mod.All...),
}.Run("zeros", t, marshal, unmarshal)

serialization.Set{
Data: []byte("\x7f"),
Values: mod.Values{int8(127), int16(127), int32(127), int64(127), int(127), "127", *big.NewInt(127)}.AddVariants(mod.All...),
}.Run("127", t, marshal, unmarshal)

serialization.Set{
Data: []byte("\x80"),
Values: mod.Values{int8(-128), int16(-128), int32(-128), int64(-128), int(-128), "-128", *big.NewInt(-128)}.AddVariants(mod.All...),
}.Run("-128", t, marshal, unmarshal)

serialization.Set{
Data: []byte("\xff"),
Values: mod.Values{uint8(255), uint16(255), uint32(255), uint64(255), uint(255)}.AddVariants(mod.All...),
}.Run("255", t, marshal, unmarshal)
})
}
}

0 comments on commit 26ca21d

Please sign in to comment.