예제 #1
0
        private void Test_Share_Net_PacketProcessManager()
        {
            User user = new User();

            CAssert.IsNotNull(user);

            byte[] buffer = new byte[Packet.DEFAULT_PACKET_BUF_SIZE];
            CAssert.IsNotNull(buffer);

            Packet pkt = new Packet(buffer);

            pkt.Initialize();

            pkt.SetPacketID(Protocol.CLI_GW_ENTER_TEST);
            int ret = PacketProcessManager.Instance.ProcessPacket(user, pkt);

            CAssert.AreEqual((int)PacketProcessManager.PACKET_PROC_ERROR.SUCCESS, ret);

            pkt.SetPacketID(Protocol.CLI_GW_ENTER_REGISTER);
            ret = PacketProcessManager.Instance.ProcessPacket(user, pkt);
            CAssert.AreEqual((int)PacketProcessManager.PACKET_PROC_ERROR.SUCCESS, ret);

            pkt.SetPacketID(Protocol.CLI_GW_ENTER_LOGIN);
            ret = PacketProcessManager.Instance.ProcessPacket(user, pkt);
            CAssert.AreEqual((int)PacketProcessManager.PACKET_PROC_ERROR.SUCCESS, ret);

            pkt.SetPacketID(Protocol.CLI_GW_ENTER_TEST_2);
            ret = PacketProcessManager.Instance.ProcessPacket(user, pkt);
            CAssert.AreEqual((int)PacketProcessManager.PACKET_PROC_ERROR.E_DEAL_FUNC_NOT_EXIST, ret);

            PacketProcessManager.Instance.Release();
        }
예제 #2
0
        private void Test_Share_Net_PacketManager()
        {
            List <Packet> pkt_list = new List <Packet>();
            Packet        pkt      = null;


            for (int i = 0; i < 1000; ++i)
            {
                pkt = PacketManager.Instance.AllocatePacket();
                CAssert.IsNotNull(pkt);

                PacketManager.Instance.ReleasePacket(pkt);
            }

            CAssert.AreEqual(1000, PacketManager.Instance.GetFreePacketCount());


            for (int i = 0; i < 1000; ++i)
            {
                pkt = PacketManager.Instance.AllocatePacket();
                CAssert.IsNotNull(pkt);

                pkt_list.Add(pkt);
            }

            CAssert.AreEqual(0, PacketManager.Instance.GetFreePacketCount());


            for (int i = 0; i < 200; ++i)
            {
                pkt = PacketManager.Instance.AllocatePacket();
                CAssert.IsNotNull(pkt);

                pkt_list.Add(pkt);
            }

            CAssert.AreEqual(0, PacketManager.Instance.GetFreePacketCount());


            for (int i = 0; i < 1200; ++i)
            {
                PacketManager.Instance.ReleasePacket(pkt_list[i]);
            }

            CAssert.AreEqual(1200, PacketManager.Instance.GetFreePacketCount());
        }
예제 #3
0
        private void Test_Gateway_User_UserManager()
        {
            CAssert.AreEqual(SessionManager.USER_TCP_SESSION_MAX_NUM + SessionManager.USER_UDP_SESSION_MAX_NUM,
                             UserManager.Instance.GetFreeUserCount());

            //Session sess = SessionManager.Instance.AllocateUserSession();


            //UserManager.Instance.AddConnectedUser(user);

            //UserManager.Instance.AddLoginedUser(user);

            //UserManager.Instance.ProcessReceive();



            //CAssert.AreEqual(SessionManager.USER_SESSION_MAX_NUM,
            //                 UserManager.Instance.GetFreeUserCount());



            User        user      = null;
            List <User> user_list = new List <User>();

            for (int i = 0; i < SessionManager.USER_TCP_SESSION_MAX_NUM; ++i)
            {
                user = UserManager.Instance.AllocateUser();
                CAssert.IsNotNull(user);

                user_list.Add(user);
                user = null;
            }

            for (int i = 0; i < SessionManager.USER_UDP_SESSION_MAX_NUM; ++i)
            {
                user = UserManager.Instance.AllocateUser();
                CAssert.IsNotNull(user);

                user_list.Add(user);
                user = null;
            }

            CAssert.AreEqual(0, UserManager.Instance.GetFreeUserCount());
        }
예제 #4
0
        private void Test_Share_Net_SessionManager()
        {
            Session        sess      = null;
            List <Session> sess_list = new List <Session>();

            for (int i = 0; i < SessionManager.USER_TCP_SESSION_MAX_NUM; ++i)
            {
                sess = SessionManager.Instance.AllocateTcpUserSession();
                CAssert.IsNotNull(sess);

                sess_list.Add(sess);
                sess = null;
            }

            CAssert.AreEqual(0, SessionManager.Instance.GetTcpUserSessionCount());

            for (int i = 0; i < sess_list.Count; ++i)
            {
                SessionManager.Instance.FreeTcpUserSession(sess_list[i]);
            }

            sess_list.Clear();

            CAssert.AreEqual(SessionManager.USER_TCP_SESSION_MAX_NUM,
                             SessionManager.Instance.GetTcpUserSessionCount());


            for (int i = 0; i < SessionManager.USER_UDP_SESSION_MAX_NUM; ++i)
            {
                sess = SessionManager.Instance.AllocateUdpUserSession();
                CAssert.IsNotNull(sess);

                sess_list.Add(sess);
                sess = null;
            }

            CAssert.AreEqual(0, SessionManager.Instance.GetUdpUserSessionCount());

            for (int i = 0; i < sess_list.Count; ++i)
            {
                SessionManager.Instance.FreeUdpUserSession(sess_list[i]);
            }

            sess_list.Clear();

            CAssert.AreEqual(SessionManager.USER_UDP_SESSION_MAX_NUM,
                             SessionManager.Instance.GetUdpUserSessionCount());


            for (int i = 0; i < SessionManager.SERVER_TCP_SESSION_MAX_NUM; ++i)
            {
                sess = SessionManager.Instance.AllocateServerSession();
                CAssert.IsNotNull(sess);

                sess_list.Add(sess);
            }

            CAssert.AreEqual(0, SessionManager.Instance.GetServerSessionCount());

            for (int i = 0; i < sess_list.Count; ++i)
            {
                SessionManager.Instance.FreeServerSession(sess_list[i]);
            }

            CAssert.AreEqual(SessionManager.SERVER_TCP_SESSION_MAX_NUM,
                             SessionManager.Instance.GetServerSessionCount());

            sess_list.Clear();
            sess_list = null;
        }
예제 #5
0
        private void Test_Share_Net_ReadWriteBuffer()
        {
            Packet pkt_orig = PacketManager.Instance.AllocatePacket();

            CAssert.IsNotNull(pkt_orig);

            pkt_orig.SetPacketID(Protocol.CLI_GW_ENTER_TEST);
            CAssert.AreEqual(pkt_orig.GetPacketID(), Protocol.CLI_GW_ENTER_TEST);

            int    int_test    = 10000001;
            short  short_test  = 10001;
            double double_test = 123456789.987654321;
            float  float_test  = 12345.12345f;
            string str_test    = "This is a testing string.";

            pkt_orig.AddInt(int_test);
            pkt_orig.AddShort(short_test);
            pkt_orig.AddDouble(double_test);
            pkt_orig.AddFloat(float_test);
            pkt_orig.AddString(str_test);


            byte[]          buffer = new byte[ReadWriteBuffer.BUFFER_MAX_SIZE];
            ReadWriteBuffer rw_buf = new ReadWriteBuffer(buffer);

            CAssert.IsNotNull(rw_buf);
            CAssert.AreEqual(0, rw_buf.GetCanReadSize());
            CAssert.AreEqual(ReadWriteBuffer.BUFFER_MAX_SIZE, rw_buf.GetCanWriteSize());

            rw_buf.WriteBytes(pkt_orig.Buf, pkt_orig.Size);
            CAssert.AreEqual(rw_buf.GetCanReadSize(), (int)pkt_orig.Size);

            Packet pkt_read = PacketManager.Instance.AllocatePacket();

            CAssert.IsNotNull(pkt_read);

            rw_buf.ReadBytes(pkt_read.Buf, rw_buf.GetCanReadSize());

            pkt_read.SetSize();

            CAssert.AreEqual(0, rw_buf.GetCanReadSize());
            CAssert.AreEqual(ReadWriteBuffer.BUFFER_MAX_SIZE, rw_buf.GetCanWriteSize());

            CAssert.AreEqual(pkt_orig.Size, pkt_read.Size);
            CAssert.AreEqual(pkt_orig.Buf, pkt_read.Buf);

            int w_count = 0;

            while (rw_buf.GetCanWriteSize() >= pkt_orig.Size)
            {
                rw_buf.WriteBytes(pkt_orig.Buf, pkt_orig.Size);
                ++w_count;
            }

            CAssert.AreEqual(pkt_orig.Size * w_count, rw_buf.GetCanReadSize());

            int r_count = 0;

            while (rw_buf.GetCanReadSize() > 0)
            {
                int pkt_size = rw_buf.PeekPacketSize();
                CAssert.IsTrue(rw_buf.GetCanReadSize() >= pkt_size);

                Packet pkt_tmp = PacketManager.Instance.AllocatePacket();
                CAssert.IsNotNull(pkt_tmp);

                pkt_tmp.Initialize();
                rw_buf.ReadBytes(pkt_tmp.Buf, pkt_size);

                pkt_tmp.SetSize();

                ++r_count;

                CAssert.AreEqual(pkt_tmp.Size, pkt_orig.Size);
                CAssert.AreEqual(pkt_tmp.Buf, pkt_orig.Buf);
            }

            CAssert.AreEqual(r_count, w_count);

            CAssert.AreEqual(0, rw_buf.GetCanReadSize());
            CAssert.AreEqual(ReadWriteBuffer.BUFFER_MAX_SIZE, rw_buf.GetCanWriteSize());

            rw_buf.Release();
            //CAssert.IsNull(rw_buf.Buffer);
        }
예제 #6
0
        private void Test_Share_Singleton()
        {
            Type type = ThreadManager.Instance.GetType();

            CAssert.IsNotNull(ThreadManager.Instance);
        }