This repository has been archived by the owner on Apr 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
/
provider.go
91 lines (71 loc) · 2.18 KB
/
provider.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
90
91
/*
Copyright SecureKey Technologies Inc. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package protocol
import (
"sync"
"github.com/hyperledger/aries-framework-go/pkg/didcomm/common/service"
"github.com/hyperledger/aries-framework-go/pkg/mock/didcomm/protocol"
mocksvc "github.com/hyperledger/aries-framework-go/pkg/mock/didcomm/service"
"github.com/hyperledger/aries-framework-go/spi/storage"
)
// MockProvider mock implementation of provider needed by sdk command controller.
type MockProvider struct {
*protocol.MockProvider
StoreProvider storage.Provider
ServiceEndpointValue string
CustomMessenger service.Messenger
}
// NewMockProvider returns mock implementation of basic provider.
func NewMockProvider() *MockProvider {
return &MockProvider{MockProvider: &protocol.MockProvider{}}
}
// ServiceEndpoint returns the service endpoint.
func (p *MockProvider) ServiceEndpoint() string {
return p.ServiceEndpointValue
}
// StorageProvider returns the storage provider.
func (p *MockProvider) StorageProvider() storage.Provider {
return p.StoreProvider
}
// Messenger return mock messenger.
func (p *MockProvider) Messenger() service.Messenger {
if p.CustomMessenger != nil {
return p.CustomMessenger
}
return &mocksvc.MockMessenger{}
}
// NewMockMessenger returns new mock messenger.
func NewMockMessenger() *MockMessenger {
return &MockMessenger{MockMessenger: &mocksvc.MockMessenger{}}
}
// MockMessenger mock implementation of messenger.
type MockMessenger struct {
*mocksvc.MockMessenger
lastID string
lock sync.RWMutex
}
// Send mock messenger Send.
func (m *MockMessenger) Send(msg service.DIDCommMsgMap, myDID, theirDID string) error {
m.lock.Lock()
defer m.lock.Unlock()
m.lastID = msg.ID()
return nil
}
// ReplyToNested mock messenger ReplyToNested.
func (m *MockMessenger) ReplyToNested(msg service.DIDCommMsgMap, opts *service.NestedReplyOpts) error {
if m.ErrReplyToNested != nil {
return m.ErrReplyToNested
}
m.lock.Lock()
defer m.lock.Unlock()
m.lastID = msg.ID()
return nil
}
// GetLastID returns ID of the last message received.
func (m *MockMessenger) GetLastID() string {
m.lock.RLock()
defer m.lock.RUnlock()
return m.lastID
}