diff options
author | Jon Skeet <jonskeet@google.com> | 2016-02-29 11:51:56 +0000 |
---|---|---|
committer | Jon Skeet <jonskeet@google.com> | 2016-02-29 11:51:56 +0000 |
commit | c0cf71bec95fabafb4860564aecd464ba59254ef (patch) | |
tree | 3fda6b8950846b51fa0d17752cd368b5a572e489 /csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs | |
parent | 60a0d41a2988a40cf3a94a4cb602f5f1c94135e9 (diff) | |
download | protobuf-c0cf71bec95fabafb4860564aecd464ba59254ef.tar.gz protobuf-c0cf71bec95fabafb4860564aecd464ba59254ef.tar.bz2 protobuf-c0cf71bec95fabafb4860564aecd464ba59254ef.zip |
Implement IDisposable for CodedInputStream and CodedOutputStream
This fixes issue #679 and issue #1282.
(The .gitignore change is just around ncrunch; I can put it in a separate PR if you really want.)
Diffstat (limited to 'csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs')
-rw-r--r-- | csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs b/csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs index 0e7cf04e..239d3c9a 100644 --- a/csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs +++ b/csharp/src/Google.Protobuf.Test/CodedInputStreamTest.cs @@ -572,5 +572,27 @@ namespace Google.Protobuf Assert.Throws<ArgumentOutOfRangeException>(() => CodedInputStream.CreateWithLimits(stream, 0, 1));
Assert.Throws<ArgumentOutOfRangeException>(() => CodedInputStream.CreateWithLimits(stream, 1, 0));
}
+
+ [Test]
+ public void Dispose_DisposesUnderlyingStream()
+ {
+ var memoryStream = new MemoryStream();
+ Assert.IsTrue(memoryStream.CanRead);
+ using (var cis = new CodedInputStream(memoryStream))
+ {
+ }
+ Assert.IsFalse(memoryStream.CanRead); // Disposed
+ }
+
+ [Test]
+ public void Dispose_WithLeaveOpen()
+ {
+ var memoryStream = new MemoryStream();
+ Assert.IsTrue(memoryStream.CanRead);
+ using (var cos = new CodedOutputStream(memoryStream, true))
+ {
+ }
+ Assert.IsTrue(memoryStream.CanRead); // We left the stream open
+ }
}
}
\ No newline at end of file |