Пример #1
0
        public void OverflowChatTest()
        {
            List <List <string> > msgs = new List <List <string> >();

            for (int i = 0; i < 4; i++)
            {
                msgs.Add(new List <string>());
            }
            List <NetExecutorChat> chats = new List <NetExecutorChat>();

            TestEnvironment tenv = TestEnvironment.AutoConnected(3,
                                                                 (serv) =>
            {
                NetExecutorChat chat = new NetExecutorChat(
                    (pinfo, msg) => { msgs[serv.OurPlayerId].Add(pinfo.Name + ": " + msg); },
                    (msg) => { return(msg); });
                chats.Add(chat);
                serv.AddExecutor(chat);
            });


            // send some messages (a lot of messages!)
            // the test here is to overflow the 256 message cycle and see that everything still works
            for (int i = 0; i < 300; i++)
            {
                chats[0].ServerSendChat("welcome everyone " + i);
                tenv.TickRepeat(11, 5);
                chats[1].ClientSendChat("I'm here " + i);
                tenv.TickRepeat(11, 5);
                chats[2].ClientSendChat("I'm here as well " + i);
                tenv.TickRepeat(11, 5);
                chats[3].ClientSendChat("don't forget about *me* " + i);
                tenv.TickRepeat(11, 5);
            }


            // now verify receipts
            void innerTest(List <string> strs)
            {
                Assert.AreEqual(300 * 4, strs.Count);
                for (int i = 0; i < 300; i++)
                {
                    Assert.AreEqual(tenv.ServerHost.OurName + ": " + "welcome everyone " + i, strs[i * 4]);
                    Assert.AreEqual(tenv.Clients[0].OurName + ": " + "I'm here " + i, strs[i * 4 + 1]);
                    Assert.AreEqual(tenv.Clients[1].OurName + ": " + "I'm here as well " + i, strs[i * 4 + 2]);
                    Assert.AreEqual(tenv.Clients[2].OurName + ": " + "don't forget about *me* " + i, strs[i * 4 + 3]);
                }
            }

            foreach (List <string> cChat in msgs)
            {
                innerTest(cChat);
            }
        }
Пример #2
0
        public void SimpleChatTest()
        {
            List <List <string> > msgs = new List <List <string> >();

            for (int i = 0; i < 4; i++)
            {
                msgs.Add(new List <string>());
            }
            List <NetExecutorChat> chats = new List <NetExecutorChat>();

            TestEnvironment tenv = TestEnvironment.AutoConnected(3,
                                                                 (serv) =>
            {
                NetExecutorChat chat = new NetExecutorChat(
                    (pinfo, msg) => { msgs[serv.OurPlayerId].Add(pinfo.Name + ": " + msg); },
                    (msg) => { return(msg); });
                chats.Add(chat);
                serv.AddExecutor(chat);
            });


            // send some messages
            chats[0].ServerSendChat("welcome everyone");
            tenv.TickRepeat(11, 10);
            chats[1].ClientSendChat("I'm here");
            tenv.TickRepeat(11, 10);
            chats[2].ClientSendChat("I'm here as well");
            tenv.TickRepeat(11, 10);
            chats[3].ClientSendChat("don't forget about *me*");
            tenv.TickRepeat(11, 10);


            // now verify receipts
            void innerTest(List <string> strs)
            {
                Assert.AreEqual(4, strs.Count);
                Assert.AreEqual(tenv.ServerHost.OurName + ": " + "welcome everyone", strs[0]);
                Assert.AreEqual(tenv.Clients[0].OurName + ": " + "I'm here", strs[1]);
                Assert.AreEqual(tenv.Clients[1].OurName + ": " + "I'm here as well", strs[2]);
                Assert.AreEqual(tenv.Clients[2].OurName + ": " + "don't forget about *me*", strs[3]);
            }

            foreach (List <string> cChat in msgs)
            {
                innerTest(cChat);
            }
        }