github.com/onflow/flow-go@v0.33.17/network/p2p/inspector/internal/mockTopicProvider.go (about) 1 package internal 2 3 import ( 4 "github.com/libp2p/go-libp2p/core/peer" 5 ) 6 7 // MockUpdatableTopicProvider is a mock implementation of the TopicProvider interface. 8 // TODO: this should be moved to a common package (e.g. network/p2p/test). Currently, it is not possible to do so because of a circular dependency. 9 type MockUpdatableTopicProvider struct { 10 topics []string 11 subscriptions map[string][]peer.ID 12 } 13 14 func NewMockUpdatableTopicProvider() *MockUpdatableTopicProvider { 15 return &MockUpdatableTopicProvider{ 16 topics: []string{}, 17 subscriptions: map[string][]peer.ID{}, 18 } 19 } 20 21 func (m *MockUpdatableTopicProvider) GetTopics() []string { 22 return m.topics 23 } 24 25 func (m *MockUpdatableTopicProvider) ListPeers(topic string) []peer.ID { 26 return m.subscriptions[topic] 27 } 28 29 func (m *MockUpdatableTopicProvider) UpdateTopics(topics []string) { 30 m.topics = topics 31 } 32 33 func (m *MockUpdatableTopicProvider) UpdateSubscriptions(topic string, peers []peer.ID) { 34 m.subscriptions[topic] = peers 35 }