public void WorksAsCollection() { Swarm a = _swarms[0]; Swarm b = _swarms[1]; Swarm c = _swarms[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 <ArgumentNullException>(() => { a.CopyTo(peers, 0); }); peers = new Peer[3]; Assert.Throws <ArgumentOutOfRangeException>(() => { a.CopyTo(peers, -1); }); Assert.Throws <ArgumentException>(() => { a.CopyTo(peers, 2); }); a.CopyTo(peers, 1); Assert.Equal(new Peer[] { null, b.AsPeer, c.AsPeer }, peers); }
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 <ArgumentNullException>(() => { a.CopyTo(peers, 0); }); peers = new Peer[3]; Assert.Throws <ArgumentOutOfRangeException>(() => { a.CopyTo(peers, -1); }); Assert.Throws <ArgumentException>(() => { a.CopyTo(peers, 2); }); a.CopyTo(peers, 1); Assert.Equal( new HashSet <Peer> { null, b.AsPeer, c.AsPeer }, peers.ToHashSet()); }