public void TestTransportFile()
        {
            var path = TWDir.Test + "\\TestAsset.txt";
            var strm = new StreamWriter(File.OpenWrite(path));

            strm.Write("This is a test asset!");
            strm.Close();

            var spm = new SimpleServerPacketManager();
            var cpm = spm.CreateClient();

            var server = new ServerFileTransporter <DataPacket>("TestTrans", spm);

            server.Start();
            var client = new ClientFileTransporter <DataPacket>("TestTrans", cpm, TWDir.Test.CreateSubdirectory("TestTransportFileCache").FullName);

            var ct = server.GetClientTransporter(spm.Clients[0]);



            ct.SendFile(new DataPacket(), path);

            var info = client.ReceiveFile();



            // Test TestAsset file

            var lines = File.ReadAllLines(info.CachedFilePath);

            Assert.AreEqual(1, lines.Length);
            Assert.AreEqual("This is a test asset!", lines[0]);
        }
        private Revision retrieveRevision(Guid guid)
        {
            var rev = sys.FindRevision(guid);

            if (rev != null)
            {
                return(rev);
            }

            requestRevisionTransporter.Send(new RevisionRequestPacket {
                Guid = guid
            });

            var p = revisionTransporter.Receive();

            rev              = new Revision();
            rev.Guid         = p.Guid;
            rev.Message      = rev.Message;
            rev.Parent       = retrieveRevision(p.Parent);
            rev.MergedParent = retrieveRevision(p.MergedParent);


            // Always 1 file in revision!!!
            for (; ;)
            {
                var fileP = fileTransporter.ReceiveFile();
                File.Move(fileP.CachedFilePath, sys.getFilePath(rev, fileP.Packet.Path));

                if (fileP.Packet.Complete)
                {
                    break;
                }
            }



            return(rev);
        }