CreateWriterView() public method

public CreateWriterView ( ) : Stream
return Stream
Beispiel #1
0
 public void TestCircularStream()
 {
     const int LineCount = 100;
     var cs = new CircularStream();
     Task.Run(() =>
     {
         using (var writer = cs.CreateWriterView())
         using (var sw = new StreamWriter(writer))
         {
             for (int i = 0; i < LineCount; i++)
             {
                 sw.WriteLine($"Line {i}: test!");
             }
         }
     });
     using (var reader = cs.CreateReaderView())
     using (var sr = new StreamReader(reader))
     {
         for (int i = 0; i < LineCount; i++)
         {
             Assert.Equal($"Line {i}: test!", sr.ReadLine());
         }
         Assert.Equal(string.Empty, sr.ReadToEnd());
     }
 }
Beispiel #2
0
 public static Stream WithMd5Hash(this Stream stream, out Task<byte[]> hashTask)
 {
     var cs = new CircularStream();
     hashTask = Task.Run(() =>
     {
         using (var csr = cs.CreateReaderView())
         {
             return MD5.Create().ComputeHash(csr);
         }
     });
     return new CompositeStream(stream, cs.CreateWriterView());
 }
Beispiel #3
0
 public async Task TestCompositeStream()
 {
     const int LineCount = 100;
     var ms = new MemoryStream();
     var cs = new CircularStream();
     var task = Task.Run(() =>
     {
         using (var stream = cs.CreateReaderView())
         {
             return SHA1.Create().ComputeHash(stream);
         }
     });
     byte[] expected;
     using (var ds = new CompositeStream(ms, cs.CreateWriterView()))
     {
         var sw = new StreamWriter(ds);
         for (int i = 0; i < LineCount; i++)
         {
             sw.WriteLine($"Line {i}: test!");
         }
         sw.Flush();
         expected = SHA1.Create().ComputeHash(ms.ToArray());
     }
     Assert.Equal(expected, await task);
 }