public async Task TestThrowing() { SocketSettings settings = new SocketSettings() { CatchApplicationExceptions = false, RsaKey = RsaStatic.GenerateKeyPairParams() }; IVSLCallback callback = new FakeCallback(); FakeSocket socket = new FakeSocket(settings, callback); await Assert.ThrowsExceptionAsync <InvalidOperationException>(() => socket.OnPacketReceived(0, null)); }
public async Task TestCatching() { SocketSettings settings = new SocketSettings() { CatchApplicationExceptions = true, RsaKey = RsaStatic.GenerateKeyPairParams() }; IVSLCallback callback = new FakeCallback(); FakeSocket socket = new FakeSocket(settings, callback); Assert.IsFalse(await socket.OnPacketReceived(0, null)); }
public void ClientStopsReadingInTheMiddleOfSenquence() { FakeCallback callback = new FakeCallback(20, TimeSpan.FromMilliseconds(20), TimeSpan.FromMilliseconds(100)); var reader = new SequentialMediaReaderAndProcessor <object, object, object>(callback, CancellationToken.None); for (int i = 0; i < callback.ItemsCount / 2; ++i) { object obj = reader.ReadAndProcessNextPieceOfData(); Assert.AreEqual(FakeCallback.ItemIdxToData(i), (int)obj); FakeCallback.DoFakeJob(TimeSpan.FromMilliseconds(20)); } }
public void ProcessingIsMoreExpensiveThanReading_NanosecondsLevel() { FakeCallback callback = new FakeCallback(100000, TimeSpan.FromTicks(30), TimeSpan.FromTicks(100)); var reader = new SequentialMediaReaderAndProcessor <object, object, object>(callback, CancellationToken.None); for (int i = 0; i < callback.ItemsCount; ++i) { object obj = reader.ReadAndProcessNextPieceOfData(); Assert.AreEqual(FakeCallback.ItemIdxToData(i), (int)obj); FakeCallback.DoFakeJob(TimeSpan.FromTicks(8)); } }
public void ProcessingIsLessExpensiveThanReading() { FakeCallback callback = new FakeCallback(20, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(20)); var reader = new SequentialMediaReaderAndProcessor <object, object, object>(callback); for (int i = 0; i < callback.ItemsCount; ++i) { object obj = reader.ReadAndProcessNextPieceOfData(); Assert.AreEqual(FakeCallback.ItemIdxToData(i), (int)obj); FakeCallback.DoFakeJob(TimeSpan.FromMilliseconds(20)); } }
public void NullIsReturnedWhenEOFReached_CorrectValueOtherwise() { FakeCallback callback = new FakeCallback(50, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(20)); var reader = new SequentialMediaReaderAndProcessor <object, object, object>(callback, CancellationToken.None); for (int i = 0;; ++i) { object obj = reader.ReadAndProcessNextPieceOfData(); if (i == callback.ItemsCount) { Assert.IsNull(obj); } else { Assert.AreEqual(FakeCallback.ItemIdxToData(i), (int)obj); } if (obj == null) { break; } } }