Exemplo n.º 1
0
        public void SetLength()
        {
            var s = new ReusableStream(16);

            Assert.AreEqual(0, s.Length);
            Assert.AreEqual(0, s.UnreadByteCount);
            Assert.AreEqual(16, s.Capacity);

            s.SetLength(4);
            Assert.AreEqual(4, s.Length);
            Assert.AreEqual(4, s.UnreadByteCount);
            Assert.AreEqual(16, s.Capacity);

            s.ReadInt32();
            Assert.AreEqual(4, s.Length);
            Assert.AreEqual(0, s.UnreadByteCount);
            Assert.AreEqual(16, s.Capacity);

            s.SetLength(16);
            Assert.AreEqual(16, s.Length);
            Assert.AreEqual(12, s.UnreadByteCount);
            Assert.AreEqual(16, s.Capacity);

            s.SetLength(17);
            Assert.AreEqual(17, s.Length);
            Assert.AreEqual(13, s.UnreadByteCount);
            Assert.IsTrue(s.Capacity >= 17);

            s.SetLength(0);
            Assert.AreEqual(0, s.Length);
            Assert.AreEqual(0, s.UnreadByteCount);
            Assert.IsTrue(s.Capacity >= 17);

            Assert.Throws <ArgumentOutOfRangeException>(() => s.SetLength(-1));
        }