Skip to content

Commit 4a9f272

Browse files
committed
add shim test and benchmark
1 parent 6e19883 commit 4a9f272

File tree

1 file changed

+72
-8
lines changed

1 file changed

+72
-8
lines changed

apex_test.go

+72-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,82 @@
11
package apex
22

33
import (
4+
"bytes"
45
"encoding/json"
6+
"io"
7+
"sync"
58
"testing"
69

7-
"github.com/stretchr/testify/assert"
10+
"github.com/tj/assert"
811
)
912

10-
// HandlerFunc Handler assertion.
11-
var _ Handler = HandlerFunc(func(event json.RawMessage, ctx *Context) (interface{}, error) {
12-
return nil, nil
13-
})
13+
var eventInput = `{
14+
"event": {
15+
"foo": "bar"
16+
},
17+
"context": {
18+
"invokeid": "test"
19+
}
20+
}`
1421

15-
func Test(t *testing.T) {
16-
assert.Nil(t, nil)
17-
// TODO: shim tests
22+
func TestHandler(t *testing.T) {
23+
var wg sync.WaitGroup
24+
25+
n := 50
26+
wg.Add(n)
27+
28+
var events []string
29+
var contexts []string
30+
h := HandlerFunc(func(event json.RawMessage, ctx *Context) (interface{}, error) {
31+
events = append(events, string(event))
32+
contexts = append(contexts, ctx.InvokeID)
33+
wg.Done()
34+
return nil, nil
35+
})
36+
37+
var buf bytes.Buffer
38+
pr, pw := io.Pipe()
39+
40+
m := &manager{
41+
Reader: pr,
42+
Writer: &buf,
43+
Handler: h,
44+
}
45+
46+
go m.Start()
47+
48+
go func() {
49+
for i := 0; i < n; i++ {
50+
pw.Write([]byte(eventInput))
51+
}
52+
pw.Close()
53+
}()
54+
55+
wg.Wait()
56+
57+
for i, e := range events {
58+
assert.Equal(t, "{\n\t\t\"foo\": \"bar\"\n\t}", e)
59+
assert.Equal(t, "test", contexts[i])
60+
}
61+
}
62+
63+
func BenchmarkHandler(b *testing.B) {
64+
h := HandlerFunc(func(event json.RawMessage, ctx *Context) (interface{}, error) {
65+
return nil, nil
66+
})
67+
68+
var buf bytes.Buffer
69+
pr, pw := io.Pipe()
70+
71+
m := &manager{
72+
Reader: pr,
73+
Writer: &buf,
74+
Handler: h,
75+
}
76+
77+
go m.Start()
78+
79+
for i := 0; i < b.N; i++ {
80+
pw.Write([]byte(eventInput))
81+
}
1882
}

0 commit comments

Comments
 (0)