diff --git a/Libplanet.Tests/Net/SwarmTest.cs b/Libplanet.Tests/Net/SwarmTest.cs index 3c1a346c72d..56a2604847d 100644 --- a/Libplanet.Tests/Net/SwarmTest.cs +++ b/Libplanet.Tests/Net/SwarmTest.cs @@ -274,51 +274,6 @@ public async Task CanExchangePeer() } } - [Fact(Timeout = Timeout)] - public async Task WorksAsCollection() - { - Swarm a = _swarms[0]; - Swarm b = _swarms[1]; - Swarm c = _swarms[2]; - - // Obtaining swarm's endpoint... - await Task.WhenAll( - StartAsync(a, _blockchains[0]), - StartAsync(b, _blockchains[1]), - StartAsync(c, _blockchains[2])); - - Assert.Empty(a); - Assert.Empty(b); - Assert.Empty(c); - - a.Add(b.AsPeer); - a.Add(c.AsPeer); - Assert.Contains(b.AsPeer, a); - Assert.Contains(c.AsPeer, a); - - Peer[] peers = null; - Assert.Throws(() => - { - a.CopyTo(peers, 0); - }); - - peers = new Peer[3]; - Assert.Throws(() => - { - a.CopyTo(peers, -1); - }); - Assert.Throws(() => - { - a.CopyTo(peers, 2); - }); - - a.CopyTo(peers, 1); - - Assert.Equal( - new HashSet { null, b.AsPeer, c.AsPeer }, - peers.ToHashSet()); - } - [Fact(Timeout = Timeout)] public async Task DetectAppProtocolVersion() { @@ -353,8 +308,8 @@ public async Task DetectAppProtocolVersion() foreach (var peer in peers) { - a.Add(peer); - b.Add(peer); + await a.AddPeersAsync(new[] { peer }); + await b.AddPeersAsync(new[] { peer }); } Assert.Equal(new[] { c.AsPeer }, a.ToArray()); @@ -396,7 +351,7 @@ void GameHandler(object sender, DifferentProtocolVersionEventArgs e) await StartAsync(a, chain); await StartAsync(b, chain); - a.Add(b.AsPeer); + await a.AddPeersAsync(new[] { b.AsPeer }); Assert.True(isCalled); } @@ -771,7 +726,7 @@ public async Task InitialBlockDownload() try { await StartAsync(minerSwarm, minerChain); - receiverSwarm.Add(minerSwarm.AsPeer); + await receiverSwarm.AddPeersAsync(new[] { minerSwarm.AsPeer }); await StartAsync(receiverSwarm, receiverChain); @@ -813,7 +768,7 @@ public async Task Preload() try { await StartAsync(minerSwarm, minerChain); - receiverSwarm.Add(minerSwarm.AsPeer); + await receiverSwarm.AddPeersAsync(new[] { minerSwarm.AsPeer }); await receiverSwarm.PreloadAsync(receiverChain, progress); diff --git a/Libplanet/Net/Swarm.cs b/Libplanet/Net/Swarm.cs index f33079891ca..3bb554480c6 100644 --- a/Libplanet/Net/Swarm.cs +++ b/Libplanet/Net/Swarm.cs @@ -252,7 +252,7 @@ public async Task> AddPeersAsync( DateTimeOffset? timestamp = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (timestamp == null) + if (timestamp is null) { timestamp = DateTimeOffset.UtcNow; } @@ -315,6 +315,10 @@ public async Task> AddPeersAsync( ); } } + else + { + _peers[peer] = timestamp.Value; + } } return addedPeers;