コード例 #1
0
        public void MessageIsSentToNetworkController()
        {
            FakeNetworkController nc = new FakeNetworkController();

            Networking.NetworkController = nc;
            Networking.Start();

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            s.SendMessage();

            Assert.AreEqual(1, nc.MessageTypes[1]);
        }
コード例 #2
0
        public void FakeNetworkControllerUnsubscribe()
        {
            FakeNetworkController nc = new FakeNetworkController();

            Networking.NetworkController = nc;
            Networking.Start();

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            Thread.Sleep(1000);

            s.UnsubscribeFromRemote();

            Assert.IsTrue(FakeNetworkController.unsubscribed);
        }
コード例 #3
0
        public void FakeNetworkControllerSubscription()
        {
            FakeNetworkController nc = new FakeNetworkController();

            Networking.NetworkController = nc;
            Networking.Start();

            TestSubscriber ts = new TestSubscriber();

            ts.Subscribe();

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            Assert.AreEqual(2, FakeNetworkController.Subscriptions[typeof(string)]);
        }
コード例 #4
0
        public void FakeNetworkControllerConnectToMulticastGroup()
        {
            FakeNetworkController nc = new FakeNetworkController();

            Networking.NetworkController = nc;
            Networking.Start();

            MulticastRemoteSubscriptionhandle h = new MulticastRemoteSubscriptionhandle();

            Networking.ConnectToMulticast(h.IpAddress, h.Port);

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            Assert.IsTrue(FakeNetworkController.connectedToMulticastgroup);
        }
コード例 #5
0
        public void NetworkControllerSendMessage()
        {
            byte[] data = new byte[1024];

            NetworkController nc     = new NetworkController();
            FakeServer        server = new FakeServer();
            FakeSender        sender = new FakeSender();

            nc.Servers.Add(server);
            Networking.NetworkController = nc;
            Networking.Start();

            SenderBase.FactoryMethod = e => sender;

            Message msg = new Message();

            msg.Data   = data;
            msg.Sender = EllaConfiguration.Instance.NodeId + 1;
            msg.Type   = MessageType.Discover;

            IPEndPoint ep = new IPEndPoint(IPAddress.Parse("234.234.234.4"), 3456);

            server.DiscoveryMessageEvent(msg, ep);

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            byte[] b = { 1, 2 };

            ApplicationMessage app = new ApplicationMessage();

            app.Data = b;

            RemoteSubscriptionHandle rh = new RemoteSubscriptionHandle();

            rh.PublisherNodeID = EllaConfiguration.Instance.NodeId + 1;

            Send.Message(app, rh, s);

            Thread.Sleep(1000);

            Assert.AreEqual(1, sender._messages[MessageType.ApplicationMessage]);
        }
コード例 #6
0
        public void NetworkControllerUnsubscribeFrom()
        {
            byte[] b = new byte[1024];

            NetworkController nc     = new NetworkController();
            FakeServer        fs     = new FakeServer();
            FakeSender        sender = new FakeSender();

            nc.Servers.Add(fs);
            Networking.NetworkController = nc;
            Networking.Start();

            SenderBase.FactoryMethod = e => sender;

            //this discoveryMessage is required to add the Instance to the RemoteHosts,
            //which is used in the NetworkController to send messages, subscribe, unsubscribe..
            //must call these MessageProcessor methods by hand, because the FakeSender just fakes the Send() implementation
            Message msg = new Message();

            msg.Data   = b;
            msg.Sender = EllaConfiguration.Instance.NodeId + 1;
            msg.Type   = MessageType.Discover;

            IPEndPoint ep = new IPEndPoint(IPAddress.Parse("234.234.234.4"), 3456);

            fs.DiscoveryMessageEvent(msg, ep);

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            Thread.Sleep(1000);

            //after subscription is done: new MessageEvent of Type SubscribeResponse is faked in FakeServer
            fs.SubscribeResponseMessageEvent(sender._id);

            s.UnsubscribeFromRemote();

            Thread.Sleep(1000);

            Assert.AreEqual(1, sender._messages[MessageType.Unsubscribe]);
        }
コード例 #7
0
        public void NetworkControllerSubscribeTo()
        {
            byte[] b = new byte[1024];

            NetworkController nc     = new NetworkController();
            FakeServer        server = new FakeServer();

            nc.Servers.Add(server);
            Networking.NetworkController = nc;
            Networking.Start();

            FakeSender sender = new FakeSender();

            SenderBase.FactoryMethod = e => sender;

            Message msg = new Message();

            msg.Data   = b;
            msg.Sender = EllaConfiguration.Instance.NodeId + 1;
            msg.Type   = MessageType.Discover;

            IPEndPoint ep = new IPEndPoint(IPAddress.Parse("234.234.234.4"), 3456);

            server.DiscoveryMessageEvent(msg, ep);

            TestPublisher p = new TestPublisher();

            Start.Publisher(p);

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            TestSubscriber s2 = new TestSubscriber();

            s2.Subscribe();

            Thread.Sleep(1000);

            Assert.AreEqual(2, sender._messages[MessageType.Subscribe]);
        }
コード例 #8
0
        public void NetworkControllerConnectToMulticastGroup()
        {
            NetworkController nc     = new NetworkController();
            FakeServer        server = new FakeServer();
            FakeSender        sender = new FakeSender();

            nc.Servers.Add(server);
            Networking.NetworkController = nc;
            Networking.Start();

            SenderBase.FactoryMethod = e => sender;

            MulticastRemoteSubscriptionhandle h = new MulticastRemoteSubscriptionhandle();

            Networking.ConnectToMulticast(h.IpAddress, h.Port);

            TestSubscriber s = new TestSubscriber();

            s.Subscribe();

            Assert.IsTrue(server._connectedToMulticastGroup);
        }