public void SetAndGetReadAndWriteLimits([Values(true, false)]bool limitRead, [Values(true, false)]bool limitWrite) {
using (var memory = new MemoryStream(this.buffer))
using (var underTest = new BandwidthLimitedStream(memory)) {
Assert.That(underTest.ReadLimit, Is.Null);
Assert.That(underTest.WriteLimit, Is.Null);
underTest.ReadLimit = limitRead ? this.limit : (long?)null;
Assert.That(underTest.ReadLimit, Is.EqualTo(limitRead ? this.limit : (long?)null));
Assert.That(underTest.WriteLimit, Is.Null);
underTest.WriteLimit = limitWrite ? this.limit : (long?)null;
Assert.That(underTest.ReadLimit, Is.EqualTo(limitRead ? this.limit : (long?)null));
Assert.That(underTest.WriteLimit, Is.EqualTo(limitWrite ? this.limit : (long?)null));
underTest.DisableReadLimit();
Assert.That(underTest.ReadLimit, Is.Null);
Assert.That(underTest.WriteLimit, Is.EqualTo(limitWrite ? this.limit : (long?)null));
underTest.DisableWriteLimit();
Assert.That(underTest.ReadLimit, Is.Null);
Assert.That(underTest.WriteLimit, Is.Null);
}
}