public void PeerConnectorAddNode_CanAlwaysStart() { var peerFolder = AssureEmptyDirAsDataFolder(Path.Combine(AppContext.BaseDirectory, "PeerConnectorTests")); var peerAddressManager = new PeerAddressManager(DateTimeProvider.Default, peerFolder, this.extendedLoggerFactory); var nodeSettings = new NodeSettings(); nodeSettings.LoadConfiguration(); var connectionSettings = new ConnectionManagerSettings(); connectionSettings.Load(nodeSettings); var connector = new PeerConnectorAddNode(this.asyncLoopFactory, DateTimeProvider.Default, this.extendedLoggerFactory, this.network, this.networkPeerFactory, this.nodeLifetime, nodeSettings, connectionSettings, peerAddressManager); Assert.True(connector.CanStartConnect); }
public void PeerConnectorAddNode_CanAlwaysStart() { var peerFolder = CreateDataFolder(this); var peerAddressManager = new PeerAddressManager(DateTimeProvider.Default, peerFolder, this.extendedLoggerFactory, new SelfEndpointTracker()); var nodeSettings = new NodeSettings(); nodeSettings.LoadConfiguration(); var connectionSettings = new ConnectionManagerSettings(); connectionSettings.Load(nodeSettings); var connector = new PeerConnectorAddNode(this.asyncLoopFactory, DateTimeProvider.Default, this.extendedLoggerFactory, this.network, this.networkPeerFactory, this.nodeLifetime, nodeSettings, connectionSettings, peerAddressManager, new SelfEndpointTracker()); Assert.True(connector.CanStartConnect); }
public void PeerConnectorAddNode_ConnectsTo_AddNodePeers() { var peerFolder = AssureEmptyDirAsDataFolder(Path.Combine(AppContext.BaseDirectory, "PeerConnectorTests")); var peerAddressManager = new PeerAddressManager(DateTimeProvider.Default, peerFolder, this.extendedLoggerFactory); var ipAddressOne = IPAddress.Parse("::ffff:192.168.0.1"); var endpointAddNode = new IPEndPoint(ipAddressOne, 80); var ipAddressTwo = IPAddress.Parse("::ffff:192.168.0.2"); var endpointDiscoveredNode = new IPEndPoint(ipAddressTwo, 80); peerAddressManager.AddPeer(endpointAddNode, IPAddress.Loopback); peerAddressManager.AddPeer(endpointDiscoveredNode, IPAddress.Loopback); var nodeSettings = new NodeSettings(); nodeSettings.LoadConfiguration(); var connectionManagerSettings = new ConnectionManagerSettings(); connectionManagerSettings.Load(nodeSettings); connectionManagerSettings.AddNode.Add(endpointAddNode); var networkPeer = new Mock <INetworkPeer>(); networkPeer.SetupGet(np => np.PeerEndPoint).Returns(new IPEndPoint(ipAddressOne, 80)); networkPeer.SetupGet(np => np.RemoteSocketAddress).Returns(ipAddressOne); networkPeer.SetupGet(np => np.RemoteSocketPort).Returns(80); networkPeer.SetupGet(np => np.State).Returns(NetworkPeerState.HandShaked); var networkPeerFactory = new Mock <INetworkPeerFactory>(); networkPeerFactory.Setup(npf => npf.CreateConnectedNetworkPeerAsync(It.IsAny <Network>(), It.IsAny <IPEndPoint>(), It.IsAny <NetworkPeerConnectionParameters>())).Returns(Task.FromResult(networkPeer.Object)); var peerConnector = new PeerConnectorAddNode(this.asyncLoopFactory, DateTimeProvider.Default, this.extendedLoggerFactory, this.network, networkPeerFactory.Object, this.nodeLifetime, nodeSettings, connectionManagerSettings, peerAddressManager); var connectionManager = CreateConnectionManager(nodeSettings, connectionManagerSettings, peerAddressManager, peerConnector); peerConnector.Initialize(connectionManager); peerConnector.OnConnectAsync().GetAwaiter().GetResult(); Assert.Contains(endpointAddNode, peerConnector.ConnectedPeers.Select(p => p.PeerEndPoint)); Assert.DoesNotContain(endpointDiscoveredNode, peerConnector.ConnectedPeers.Select(p => p.PeerEndPoint)); }