Esempio n. 1
0
 public void CanWriteAndRecoverUShort(ushort testData)
 {
     using var s           = new MemoryStream();
     using var inStream    = new Df2Stream(s, StreamMode.Write, true);
     inStream.CommandSend += msg => Out.WriteLine("WRITE> " + msg);
     inStream.AddOrUpdate("TestData", testData);
     inStream.Flush();
     inStream.Close();
     Out.WriteLine($"Data: {Encoding.UTF8.GetString(s.ToArray())} ({BitConverter.ToString(s.ToArray())})");
     s.Seek(0, SeekOrigin.Begin);
     using var outStream       = new Df2Stream(s, StreamMode.Read);
     outStream.CommandReceive += msg => Out.WriteLine("READ> " + msg);
     outStream.ProcessUntilEnd();
     Assert.Equal(testData, outStream.Values["TestData"].AsUShort());
 }
Esempio n. 2
0
        public void CanWriteAndRecoverStringArray(string[] testData)
        {
            using var s        = new MemoryStream();
            using var inStream = new Df2Stream(s, StreamMode.Write, true);
            var group = inStream.GetOrAddGroup("TestGroup");

            inStream.CommandSend += msg => Out.WriteLine("WRITE> " + msg);
            group.AddOrUpdate("TestData", testData);
            inStream.Flush();
            inStream.Close();
            Out.WriteLine($"Data: {Encoding.UTF8.GetString(s.ToArray())} ({BitConverter.ToString(s.ToArray())})");
            s.Seek(0, SeekOrigin.Begin);
            using var outStream       = new Df2Stream(s, StreamMode.Read);
            outStream.CommandReceive += msg => Out.WriteLine("READ> " + msg);
            outStream.ProcessUntilEnd();
            Assert.Equal(testData, outStream.Values["TestGroup"]["TestData"].AsArray <string>());
            using var msFinal     = new MemoryStream();
            using var finalStream = new Df2Stream(msFinal, StreamMode.Write);
            var gotRemove = false;

            finalStream.CommandSend += finalMsg =>
            {
                if (finalMsg.StartsWith("Remove"))
                {
                    gotRemove = true;
                }

                Out.WriteLine($"SECOND WRITE> {finalMsg}");
            };
            outStream.CopyTo(finalStream);
            finalStream.Remove("TestGroup");
            finalStream.Flush();
            Out.WriteLine($"{Encoding.UTF8.GetString(msFinal.ToArray())} ({BitConverter.ToString(msFinal.ToArray())})");
            Assert.True(gotRemove);
            msFinal.Seek(0, SeekOrigin.Begin);
            using var finalReadStream       = new Df2Stream(msFinal, StreamMode.Read);
            finalReadStream.CommandReceive += msg => Out.WriteLine($"SECOND READ> {msg}");
            finalReadStream.ProcessUntilEnd();
            Assert.False(finalReadStream.Values.ContainsKey("TestGroup"));
        }
Esempio n. 3
0
 public void CanProduceFullPaths(string current, string dest, string expected)
 {
     Assert.Equal(expected, Df2Stream.GetFullPath(dest, current));
 }