File tree 1 file changed +72
-8
lines changed
1 file changed +72
-8
lines changed Original file line number Diff line number Diff line change 1
1
package apex
2
2
3
3
import (
4
+ "bytes"
4
5
"encoding/json"
6
+ "io"
7
+ "sync"
5
8
"testing"
6
9
7
- "github.com/stretchr/testify /assert"
10
+ "github.com/tj /assert"
8
11
)
9
12
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
+ }`
14
21
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
+ }
18
82
}
You can’t perform that action at this time.
0 commit comments