public void TestSecureStringReader()
        {
            foreach (SecureString ss in MakeStrings())
            {
                Assert.AreEqual(TEST_PASSWORD, SecureStringUtils.ToTextReader(ss).ReadToEnd());

                StringBuilder sb = new StringBuilder();
                using (TextReader r = SecureStringUtils.ToTextReader(ss))
                {
                    while (r.Peek() != -1)
                    {
                        sb.Append((char)r.Read());
                        int i = r.Read();
                        if (i != -1)
                        {
                            sb.Append((char)i);
                        }
                    }
                }
                Assert.AreEqual(TEST_PASSWORD, sb.ToString());

                char[] buffer = new char[TEST_PASSWORD.Length];
                using (TextReader r = new UnicodeReader(SecureStringUtils.ToStream(ss)))
                {
                    for (int i = 0; i < buffer.Length; i++)
                    {
                        Assert.AreEqual(1, r.ReadBlock(buffer, i, buffer.Length - i));
                    }
                    Assert.AreEqual(0, r.ReadBlock(buffer, 0, buffer.Length));
                }
                Assert.AreEqual(TEST_PASSWORD, new string(buffer));
            }
        }
 public void TestSecureStringToStream()
 {
     byte[] expect = Encoding.Unicode.GetBytes(TEST_PASSWORD);
     foreach (SecureString ss in MakeStrings())
     {
         Assert.AreEqual(expect, IOStream.ReadAllBytes(SecureStringUtils.ToStream(ss)));
         Assert.AreEqual(TEST_PASSWORD, IOStream.ReadAllText(SecureStringUtils.ToStream(ss), Encoding.Unicode));
     }
 }