コード例 #1
0
        public void CreateBinaryWriter()
        {
            var pool     = new MemoryStreamPool();
            var expected = pool.Rent();

            using (var writer = MemoryStreamPool.Shared.CreateBinaryWriter()) {
                writer.Write(42);
            }
            pool.Return(expected);

            var actual = pool.Rent();

            Assert.AreSame(expected, actual);
            Assert.AreEqual(0, actual.Length);
        }
コード例 #2
0
        public void CopyIfStreamChanged_MemoryStreamPool()
        {
            var pool     = new MemoryStreamPool();
            var expected = pool.Rent();

            pool.Return(expected);

            using (var writer = pool.CreateStreamWriter()) {
                writer.WriteLine("bar");
                writer.Flush();

                Assert.IsTrue(MonoAndroidHelper.CopyIfStreamChanged(writer.BaseStream, temp), "Should write on new file.");
                FileAssert.Exists(temp);
            }

            var actual = pool.Rent();

            Assert.AreSame(expected, actual);
            Assert.AreEqual(0, actual.Length);
        }
コード例 #3
0
        public void CopyIfStreamChanged_MemoryStreamPool_BinaryWriter()
        {
            var pool     = new MemoryStreamPool();
            var expected = pool.Rent();

            pool.Return(expected);

            using (var writer = pool.CreateBinaryWriter()) {
                writer.Write(42);
                writer.Flush();

                Assert.IsTrue(Files.CopyIfStreamChanged(writer.BaseStream, tempDir), "Should write on new file.");
                FileAssert.Exists(tempDir);
            }

            var actual = pool.Rent();

            Assert.AreSame(expected, actual);
            Assert.AreEqual(0, actual.Length);
        }