public void PeerConnectorAddNode_FindPeerToConnectTo_Returns_AddNodePeers() { var peerAddressManager = new PeerAddressManager(); var ipAddressOne = IPAddress.Parse("::ffff:192.168.0.1"); var networkAddressAddNode = new NetworkAddress(ipAddressOne, 80); var ipAddressTwo = IPAddress.Parse("::ffff:192.168.0.2"); var networkAddressDiscoverNode = new NetworkAddress(ipAddressTwo, 80); peerAddressManager.AddPeer(networkAddressAddNode, IPAddress.Loopback); peerAddressManager.AddPeer(networkAddressDiscoverNode, IPAddress.Loopback); var nodeSettings = new NodeSettings { ConnectionManager = new Configuration.Settings.ConnectionManagerSettings() }; nodeSettings.ConnectionManager.AddNode.Add(networkAddressAddNode.Endpoint); var connector = new PeerConnectorAddNode(nodeSettings, peerAddressManager); var peer = connector.FindPeerToConnectTo(); Assert.Equal(networkAddressAddNode.Endpoint, peer.Endpoint); }
public void PeerConnectorAddNode_PeerAlreadyConnected_Scenario1() { this.CreateTestContext("PeerConnectorAddNode_PeerAlreadyConnected_Scenario1"); var peerConnectorAddNode = new PeerConnectorAddNode(new AsyncLoopFactory(this.loggerFactory), DateTimeProvider.Default, this.loggerFactory, this.network, this.networkPeerFactory, this.nodeLifetime, this.nodeSettings, this.peerAddressManager); var peerDiscovery = new PeerDiscovery(new AsyncLoopFactory(this.loggerFactory), this.loggerFactory, this.network, this.networkPeerFactory, this.nodeLifetime, this.nodeSettings, this.peerAddressManager); IConnectionManager connectionManager = new ConnectionManager( new AsyncLoopFactory(this.loggerFactory), DateTimeProvider.Default, this.loggerFactory, this.network, this.networkPeerFactory, this.nodeSettings, this.nodeLifetime, this.parameters, this.peerAddressManager, new IPeerConnector[] { peerConnectorAddNode }, peerDiscovery); // Create a peer to add to the already connected peers collection. NetworkPeer networkPeer = null; using (NodeBuilder builder = NodeBuilder.Create()) { CoreNode coreNode = builder.CreateStratisPowNode(); builder.StartAll(); networkPeer = coreNode.CreateNetworkPeerClient(); // Add the network peers to the connection manager's // add node collection. connectionManager.AddNodeAddress(networkPeer.PeerAddress.Endpoint); // Add the peer to the already connected // peer collection of connection manager. // // This is to simulate that a peer has successfully connected // and that the add node connector's Find method then won't // return the added node. connectionManager.AddConnectedPeer(networkPeer); // Re-initialize the add node peer connector so that it // adds the successful address to the address manager. peerConnectorAddNode.Initialize(connectionManager); // The already connected peer should not be returned. var peer = peerConnectorAddNode.FindPeerToConnectTo(); Assert.Null(peer); } }