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); }
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); }
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); }