public async void ReadFrameAsync_ReadFullyDefragmentationStrategyGetFrameLengthReturnsOneAndTcpStreamHasOneByte_ShouldReturnSuccessReadFrameStatus() { // Arrange var strategy = this.SetupMixedDefragmentationStrategy(MixedDefragmentationStrategyReadType.ReadDefault, 1, () => 1); var defragmenter = new MixedDefragmenter(strategy); var remotePeer = this.SetupRemotePeer(new byte[] { 1 }); // Act var result = await defragmenter.ReadFrameAsync(remotePeer, null, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(ReadFrameStatus.Success, result.ReadFrameStatus); }
public async void ReadFrameAsync_RemotePeerTcpStreamWithNoData_ShouldReturnStreamClosedReadFrameStatus() { // Arrange var strategy = this.SetupMixedDefragmentationStrategy(MixedDefragmentationStrategyReadType.ReadDefault, 1024, () => 0); var defragmenter = new MixedDefragmenter(strategy); var remotePeer = this.SetupRemotePeer(new byte[] {}); // Act var result = await defragmenter.ReadFrameAsync(remotePeer, null, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(ReadFrameStatus.StreamClosed, result.ReadFrameStatus); }
public async void ReadFrameAsync_ReadDefaultDefragmentationStrategyAndSomeNumberOfBytesInTcpStream_ShouldReadAsManyNumberOfBytesAsThereIsInTcpStream(int numberOfBytes) { // Arrange var strategy = this.SetupMixedDefragmentationStrategy(MixedDefragmentationStrategyReadType.ReadDefault, 1024, () => numberOfBytes); var defragmenter = new MixedDefragmenter(strategy); var remotePeer = this.SetupRemotePeer(Enumerable.Repeat <byte>(1, numberOfBytes).ToArray()); // Act var result = await defragmenter.ReadFrameAsync(remotePeer, null, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(numberOfBytes, result.FrameData.Length); }
public async void ReadFrameAsync_DefragmentationStrategyReturnsMinusOne_ShouldReturnDroppedReadFrameStatus() { // Arrange var strategy = this.SetupMixedDefragmentationStrategy(MixedDefragmentationStrategyReadType.ReadDefault, 1024, () => - 1); var defragmenter = new MixedDefragmenter(strategy); var remotePeer = this.SetupRemotePeer(new byte[] { 1, 2, 3, 4 }); // Act var result = await defragmenter.ReadFrameAsync(remotePeer, null, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(ReadFrameStatus.FrameDropped, result.ReadFrameStatus); }