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); } }