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  }