public void TryAddRespectsTheBatchLock() { var mockBatch = new MockTransportBatch(); var batch = new ServiceBusMessageBatch(mockBatch); var message = new ServiceBusMessage(new byte[] { 0x21 }); Assert.That(batch.TryAdd(new ServiceBusMessage(new byte[] { 0x21 })), Is.True, "The message should have been accepted before locking."); batch.Lock(); Assert.That(() => batch.TryAdd(new ServiceBusMessage(Array.Empty <byte>())), Throws.InstanceOf <InvalidOperationException>(), "The batch should not accept messages when locked."); batch.Unlock(); Assert.That(batch.TryAdd(new ServiceBusMessage(Array.Empty <byte>())), Is.True, "The message should have been accepted after unlocking."); }
public void DisposeRespectsTheBatchLock() { var mockBatch = new MockTransportBatch(); var mockScope = new EntityScopeFactory("mock", "mock"); var batch = new ServiceBusMessageBatch(mockBatch, mockScope); Assert.That(batch.TryAddMessage(new ServiceBusMessage(new byte[] { 0x21 })), Is.True, "The message should have been accepted before locking."); batch.Lock(); Assert.That(() => batch.Dispose(), Throws.InstanceOf <InvalidOperationException>(), "The batch should not accept messages when locked."); batch.Unlock(); batch.Dispose(); Assert.That(mockBatch.DisposeInvoked, Is.True, "The batch should have been disposed after unlocking."); }