public static List <CableCloudMessage> Generate(int portNumber, int vpi, int vci, string message)
        {
            var atmCells           = AtmCell.Generate(vpi, vci, message);
            var cableCloudMessages = new List <CableCloudMessage>();

            while (atmCells.Count >= CableCloudMessage.MaxAtmCellsNumber)
            {
                var atmCellsPart = atmCells.GetRange(0, CableCloudMessage.MaxAtmCellsNumber);
                atmCells.RemoveRange(0, CableCloudMessage.MaxAtmCellsNumber);
                cableCloudMessages.Add(new CableCloudMessage(portNumber, atmCellsPart));
            }
            cableCloudMessages.Add(new CableCloudMessage(portNumber, atmCells));

            return(cableCloudMessages);
        }
        public void SerializeCableCloudMessageTest()
        {
            var message = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));
            var data    = BinarySerializer.Serialize(message);
            var obj     = BinarySerializer.Deserialize(data);
            var msg     = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));

            Debug.WriteLine(msg.PortNumber);
            if (obj is CableCloudMessage)
            {
                msg = (CableCloudMessage)obj;
            }
            Assert.AreEqual(message.PortNumber, msg.PortNumber);
            Debug.WriteLine(msg.PortNumber);
        }
        public void StreamSerializeCableCloudMessageTest()
        {
            var tcpListener = new TcpListener(IPAddress.Loopback, 10000);

            tcpListener.Start();
            var acceptTask = AcceptTask(tcpListener);

            var client1 = new TcpClient();

            client1.Connect(IPAddress.Loopback, 10000);
            var client2 = acceptTask.Result;


            var expected = new CableCloudMessage(1, AtmCell.Generate(1, 1, "TEST"));

            BinarySerializer.SerializeToStream(expected, client1.GetStream());
            var actual = (CableCloudMessage)BinarySerializer.DeserializeFromStream(client2.GetStream());

            Assert.AreEqual(expected.PortNumber, actual.PortNumber);
        }