public void Properties_Are_Simple_Accessors() { using (var mem = new MemoryStream(new byte[0])) { var _ = new PushFuncStream(mem, true, CancellationToken.None); Assert.True(_.Dispose); Assert.True(_.Token.Equals(CancellationToken.None)); Assert.True(ReferenceEquals(_.Writable, mem)); } }
public void Ctor_Throws_Error_When_Stream_Is_Not_Writable() { using (var mem = new MemoryStream(new byte[0], false)) { Assert.True(Assert.Throws <DdnDfException>(() => { var _ = new PushFuncStream(mem, true, CancellationToken.None); }).ErrorCode == DdnDfErrorCode.Unspecified); } }
internal static async Task PushPpcJsonEnumeration <T>(this BlockingCollection <T> bc, JsonSerializer serializer, Encoding enc, int writerBuffer, CancellationTokenSource pcts, bool autoFlush, CancellationToken token, PushFuncStream pfs, IProducer <T> producer, int ppcBufferSize) { var errList = new List <Exception>(); var serialConsumerTask = Task.Run( () => JsonEnumeration(bc, serializer, enc, writerBuffer, pcts, autoFlush)(pfs), token); await PpcJsonEnumerationProducer(bc, producer, token, ppcBufferSize, errList, pcts) .ConfigureAwait(false); try { await serialConsumerTask.ConfigureAwait(false); } catch (Exception e) { errList.Add(e); } if (errList.Count > 0) { throw new AggregateException("Error during JSON PUSH streaming.", errList); } }