public async Task TestReceiveStreamAsyncProtectsToOneAtATime() { var source = new CancellationTokenSource(); var expected = new byte[] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 }; var activeReceives = new ProtectedInt(); var startCounts = new List <int>(); var endCounts = new List <int>(); mResult.SetupGet(m => m.MessageType).Returns(WebSocketMessageType.Binary); mResult.SetupGet(m => m.Count).Returns(16); mResult.SetupGet(m => m.EndOfMessage).Returns(true); mSocket.Setup(m => m.ReceiveAsync(It.IsAny <ArraySegment <byte> >(), source.Token)) .Callback <ArraySegment <byte>, CancellationToken>(async(b, t) => { startCounts.Add(await activeReceives.IncrementAsync()); Array.Copy(expected, b.Array, 16); Thread.Sleep(10); endCounts.Add(await activeReceives.DecrementAsync()); }) .Returns(Task.FromResult(mResult.Object)); await Task.WhenAll(StartReceiveAsyncTasks(expected, source.Token)); Assert.False(startCounts.Any(c => c != 1)); Assert.False(endCounts.Any(c => c != 0)); }
public async Task TestSendStreamAsyncProtectsToOneAtATime() { var source = new CancellationTokenSource(); var activeSends = new ProtectedInt(); var startCounts = new List <int>(); var endCounts = new List <int>(); mSocket.Setup(m => m.SendAsync(It.IsAny <ArraySegment <byte> >(), WebSocketMessageType.Binary, true, source.Token)) .Callback <ArraySegment <byte>, WebSocketMessageType, bool, CancellationToken>(async(b, t, f, token) => { startCounts.Add(await activeSends.IncrementAsync()); Thread.Sleep(10); endCounts.Add(await activeSends.DecrementAsync()); }) .Returns(Task.FromResult(true)); await Task.WhenAll(StartSendAsyncTasks(source.Token)); Assert.False(startCounts.Any(c => c != 1)); Assert.False(endCounts.Any(c => c != 0)); }
public Item(string id, Modifier modifier, int count = 1) { Id = id; Count = count; Modifier = modifier; }
public Item(string id, int count = 1) { Id = id; Count = count; }