-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
bindings_mock.go
89 lines (69 loc) · 2.01 KB
/
bindings_mock.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package testing
import (
"context"
mock "github.com/stretchr/testify/mock"
"github.com/dapr/components-contrib/bindings"
)
// MockBinding is a mock input/output component object.
type MockBinding struct {
mock.Mock
readCloseCh chan struct{}
}
// Init is a mock initialization method.
func (m *MockBinding) Init(ctx context.Context, metadata bindings.Metadata) error {
return nil
}
func (m *MockBinding) GetComponentMetadata() map[string]string {
return map[string]string{}
}
// Read is a mock read method.
func (m *MockBinding) Read(ctx context.Context, handler bindings.Handler) error {
args := m.Called(ctx, handler)
if err := args.Error(0); err != nil {
return err
}
if ctx != nil && m.readCloseCh != nil {
go func() {
<-ctx.Done()
m.readCloseCh <- struct{}{}
}()
}
return nil
}
// Invoke is a mock invoke method.
func (m *MockBinding) Invoke(ctx context.Context, req *bindings.InvokeRequest) (*bindings.InvokeResponse, error) {
args := m.Called(req)
return nil, args.Error(0)
}
// Operations is a mock operations method.
func (m *MockBinding) Operations() []bindings.OperationKind {
return []bindings.OperationKind{bindings.CreateOperation}
}
func (m *MockBinding) Close() error {
return nil
}
func (m *MockBinding) SetOnReadCloseCh(ch chan struct{}) {
m.readCloseCh = ch
}
type FailingBinding struct {
Failure Failure
}
// Init is a mock initialization method.
func (m *FailingBinding) Init(ctx context.Context, metadata bindings.Metadata) error {
return nil
}
func (m *FailingBinding) GetComponentMetadata() map[string]string {
return map[string]string{}
}
// Invoke is a mock invoke method.
func (m *FailingBinding) Invoke(ctx context.Context, req *bindings.InvokeRequest) (*bindings.InvokeResponse, error) {
key := string(req.Data)
return nil, m.Failure.PerformFailure(key)
}
// Operations is a mock operations method.
func (m *FailingBinding) Operations() []bindings.OperationKind {
return []bindings.OperationKind{bindings.CreateOperation}
}
func (m *FailingBinding) Close() error {
return nil
}