Skip to content

Commit 64ac6f6

Browse files
committed
tmp
1 parent c45b36a commit 64ac6f6

14 files changed

+928
-4
lines changed

arrow/arrow.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ func (a Arrow) Raw() []byte {
2828
return a.data
2929
}
3030

31+
// MarshalMsgpack implements a custom msgpack marshaler for extension type.
3132
func (a Arrow) MarshalMsgpack() ([]byte, error) {
3233
return a.data, nil
3334
}
3435

36+
// UnmarshalMsgpack implements a custom msgpack unmarshaler for extension type.
3537
func (a *Arrow) UnmarshalMsgpack(data []byte) error {
3638
a.data = data
3739
return nil

arrow/arrow_gen_test.go

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
package arrow
2+
3+
import (
4+
"bytes"
5+
"testing"
6+
7+
"github.com/stretchr/testify/assert"
8+
"github.com/vmihailenco/msgpack/v5"
9+
)
10+
11+
func TestSomeOptionalArrow(t *testing.T) {
12+
val, err := MakeArrow([]byte{1, 2, 3})
13+
assert.NoError(t, err)
14+
opt := SomeOptionalArrow(val)
15+
16+
assert.True(t, opt.IsSome())
17+
assert.False(t, opt.IsZero())
18+
19+
v, ok := opt.Get()
20+
assert.True(t, ok)
21+
assert.Equal(t, val, v)
22+
}
23+
24+
func TestNoneOptionalArrow(t *testing.T) {
25+
opt := NoneOptionalArrow()
26+
27+
assert.False(t, opt.IsSome())
28+
assert.True(t, opt.IsZero())
29+
30+
_, ok := opt.Get()
31+
assert.False(t, ok)
32+
}
33+
34+
func TestOptionalArrow_MustGet(t *testing.T) {
35+
val, err := MakeArrow([]byte{1, 2, 3})
36+
assert.NoError(t, err)
37+
optSome := SomeOptionalArrow(val)
38+
optNone := NoneOptionalArrow()
39+
40+
assert.Equal(t, val, optSome.MustGet())
41+
assert.Panics(t, func() { optNone.MustGet() })
42+
}
43+
44+
func TestOptionalArrow_Unwrap(t *testing.T) {
45+
val, err := MakeArrow([]byte{1, 2, 3})
46+
assert.NoError(t, err)
47+
optSome := SomeOptionalArrow(val)
48+
optNone := NoneOptionalArrow()
49+
50+
assert.Equal(t, val, optSome.Unwrap())
51+
assert.Equal(t, Arrow{}, optNone.Unwrap())
52+
}
53+
54+
func TestOptionalArrow_UnwrapOr(t *testing.T) {
55+
val, err := MakeArrow([]byte{1, 2, 3})
56+
assert.NoError(t, err)
57+
def, err := MakeArrow([]byte{4, 5, 6})
58+
assert.NoError(t, err)
59+
optSome := SomeOptionalArrow(val)
60+
optNone := NoneOptionalArrow()
61+
62+
assert.Equal(t, val, optSome.UnwrapOr(def))
63+
assert.Equal(t, def, optNone.UnwrapOr(def))
64+
}
65+
66+
func TestOptionalArrow_UnwrapOrElse(t *testing.T) {
67+
val, err := MakeArrow([]byte{1, 2, 3})
68+
assert.NoError(t, err)
69+
def, err := MakeArrow([]byte{4, 5, 6})
70+
assert.NoError(t, err)
71+
optSome := SomeOptionalArrow(val)
72+
optNone := NoneOptionalArrow()
73+
74+
assert.Equal(t, val, optSome.UnwrapOrElse(func() Arrow { return def }))
75+
assert.Equal(t, def, optNone.UnwrapOrElse(func() Arrow { return def }))
76+
}
77+
78+
func TestOptionalArrow_EncodeDecodeMsgpack(t *testing.T) {
79+
val, err := MakeArrow([]byte{1, 2, 3})
80+
assert.NoError(t, err)
81+
some := SomeOptionalArrow(val)
82+
none := NoneOptionalArrow()
83+
84+
var buf bytes.Buffer
85+
enc := msgpack.NewEncoder(&buf)
86+
dec := msgpack.NewDecoder(&buf)
87+
88+
// Test Some
89+
err = enc.Encode(some)
90+
assert.NoError(t, err)
91+
92+
var decodedSome OptionalArrow
93+
err = dec.Decode(&decodedSome)
94+
assert.NoError(t, err)
95+
assert.True(t, decodedSome.IsSome())
96+
assert.Equal(t, val, decodedSome.Unwrap())
97+
98+
// Test None
99+
buf.Reset()
100+
err = enc.Encode(none)
101+
assert.NoError(t, err)
102+
103+
var decodedNone OptionalArrow
104+
err = dec.Decode(&decodedNone)
105+
assert.NoError(t, err)
106+
assert.True(t, decodedNone.IsZero())
107+
108+
// Test invalid type
109+
buf.Reset()
110+
err = enc.Encode(123)
111+
assert.NoError(t, err)
112+
113+
var decodedInvalid OptionalArrow
114+
err = dec.Decode(&decodedInvalid)
115+
assert.Error(t, err)
116+
}

box_error.go renamed to boxerror.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99

1010
const errorExtID = 3
1111

12+
//go:generate go tool gentypes -ext-code 3 BoxError
13+
1214
const (
1315
keyErrorStack = 0x00
1416
keyErrorType = 0x00

boxerror_gen.go

Lines changed: 241 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)