public void SendDedicatedMessageTest() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) using (var peer2 = bus.CreatePeer()) { peer1.Connect(); peer2.Connect(); var subscriberToReceive = new SubscriberFor <string>(); var subscriberToSkip = new SubscriberFor <string>(); peer1.Register(subscriberToReceive); peer2.Register(subscriberToSkip); Thread.Sleep(50); var message = "Hello"; peer2.Send(message, peer1.Identity); AwaitAssert(TimeSpan.FromSeconds(5), () => { CollectionAssert.Contains(subscriberToReceive.ReceivedMessages, message); }); Thread.Sleep(1000); CollectionAssert.IsEmpty(subscriberToSkip.ReceivedMessages); } }
public void SubscribeToPeerConnectedOrDisconnectedTest() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) using (var peer2 = bus.CreatePeer()) { peer1.Connect(); var subscriberForConnected = new SubscriberFor <PeerConnected>(); var subscriberForDisconnected = new SubscriberFor <PeerDisconnected>(); peer1.Register(subscriberForConnected); peer1.Register(subscriberForDisconnected); Thread.Sleep(50); peer2.Connect(); AwaitAssert(TimeSpan.FromSeconds(10), () => { Assert.True(subscriberForConnected.ReceivedMessages.Any(m => m is PeerConnected && ((PeerConnected)m).Identity.Equals(peer2.Identity))); }); peer2.Disconnect(); AwaitAssert(TimeSpan.FromSeconds(10), () => { Assert.True(subscriberForDisconnected.ReceivedMessages.Any(m => m is PeerDisconnected && ((PeerDisconnected)m).Identity.Equals(peer2.Identity))); }); } }
public void ShouldDiscoverDisconnect() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) using (var peer2 = bus.CreatePeer()) { peer1.Connect(); peer2.Connect(); Console.WriteLine(DateTime.Now + "Started"); AwaitAssert(TimeSpan.FromSeconds(50), () => { CollectionAssert.Contains(peer1.GetConnectedPeers(), peer2.Identity); }); Console.WriteLine(DateTime.Now + "Connected"); peer2.Disconnect(); AwaitAssert(TimeSpan.FromSeconds(50), () => { CollectionAssert.DoesNotContain(peer1.GetConnectedPeers(), peer2.Identity); }); Console.WriteLine(DateTime.Now + "Disconnected"); } }
public void MultipleSubscriptionsTest() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) { peer1.Connect(); var subscriber = new SubscriberForStringAndInt(); peer1.Register(subscriber); Thread.Sleep(50); var stringMessage = "Hello"; var intMessage = 5; peer1.Publish(stringMessage); peer1.Publish(intMessage); AwaitAssert(TimeSpan.FromSeconds(5), () => { CollectionAssert.Contains(subscriber.ReceivedMessages, stringMessage); CollectionAssert.Contains(subscriber.ReceivedMessages, intMessage); }); } }
public void ShouldSetIsConnectedProperly() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) { peer1.Connect(); Assert.True(peer1.IsConnected); peer1.Disconnect(); Assert.False(peer1.IsConnected); } }
/// <summary> /// This test is running in debug mode so that we can examine consumed memory with VisualStudio tools /// </summary> // [Test] public void MemoryConsumptionTest() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) using (var peer2 = bus.CreatePeer()) { peer1.Connect(); peer2.Connect(); while (true) { } } }
public void PeersInDifferentContextsDoNotSeeEachOther() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer("contextOne")) using (var peer2 = bus.CreatePeer("contextTwo")) { peer1.Connect(); peer2.Connect(); Thread.Sleep(5000); CollectionAssert.AreEquivalent(new[] { peer1.Identity }, peer1.GetConnectedPeers()); CollectionAssert.AreEquivalent(new[] { peer2.Identity }, peer2.GetConnectedPeers()); } }
public void ShouldDiscoverEachOther() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) using (var peer2 = bus.CreatePeer()) { peer1.Connect(); peer2.Connect(); AwaitAssert(TimeSpan.FromSeconds(5), () => { CollectionAssert.AreEquivalent(new[] { peer1.Identity, peer2.Identity }, peer1.GetConnectedPeers()); CollectionAssert.AreEquivalent(new[] { peer1.Identity, peer2.Identity }, peer2.GetConnectedPeers()); }); } }
public void ShouldDiscoverWithMetadata() { var bus = new YottoBusFactory().Create(); var conf = new PeerConfiguration(string.Empty, new Dictionary <string, string>() { ["key"] = "value" }); using (var peer1 = bus.CreatePeer(conf)) { peer1.Connect(); AwaitAssert(TimeSpan.FromSeconds(5), () => { Assert.True(peer1.GetConnectedPeers().Any()); Assert.True(peer1.GetConnectedPeers().First().Metadata.Has("key")); Assert.AreEqual(peer1.GetConnectedPeers().First().Metadata.Get("key"), "value"); }); } }
public void PublishSubscribeTest() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer()) { peer1.Connect(); var subscriber = new SubscriberFor <string>(); peer1.Register(subscriber); Thread.Sleep(50); var message = "Hello"; peer1.Publish(message); AwaitAssert(TimeSpan.FromSeconds(5), () => { CollectionAssert.Contains(subscriber.ReceivedMessages, message); CollectionAssert.Contains(subscriber.MessageSenders, peer1.Identity); }); } }
public void PeersInDifferentContextDoNotReceiveSubscribedMessages() { var bus = new YottoBusFactory().Create(); using (var peer1 = bus.CreatePeer("contextOne")) using (var peer2 = bus.CreatePeer("contextTwo")) { peer1.Connect(); peer2.Connect(); var subscriber = new SubscriberFor <string>(); peer1.Register(subscriber); Thread.Sleep(50); var message = "Hello"; peer2.Publish(message); Thread.Sleep(5000); CollectionAssert.DoesNotContain(subscriber.ReceivedMessages, message); CollectionAssert.DoesNotContain(subscriber.MessageSenders, peer1.Identity); } }