예제 #1
0
        public async Task Start_Throws_IfCalledMoreThanOnce()
        {
            // Arrange
            _dequeueManager = new AzureWebHookDequeueManagerMock(this);
            var start = _dequeueManager.Start(_tokenSource.Token);

            // Act
            var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => _dequeueManager.Start(_tokenSource.Token));

            // Assert
            Assert.Contains("This 'AzureWebHookDequeueManagerMock' instance has already been started. It can only be started once.", ex.Message);
        }
        public async Task Dispose_CancelsStartTask(int millisecondDelay)
        {
            // Arrange
            _dequeueManager = new AzureWebHookDequeueManagerMock(this);

            // Act
            Task actual = _dequeueManager.Start(_tokenSource.Token);
            await Task.Delay(millisecondDelay);
            _dequeueManager.Dispose();
            await actual;

            // Assert
            Assert.True(actual.IsCompleted);
        }
        public async Task Dispose_CancelsStartTask(int millisecondDelay)
        {
            // Arrange
            _dequeueManager = new AzureWebHookDequeueManagerMock(this);

            // Act
            Task actual = _dequeueManager.Start(_tokenSource.Token);
            await Task.Delay(millisecondDelay);

            _dequeueManager.Dispose();
            await actual;

            // Assert
            Assert.True(actual.IsCompleted);
        }
        public async Task Start_Throws_IfCalledMoreThanOnce()
        {
            // Arrange
            _dequeueManager = new AzureWebHookDequeueManagerMock(this);
            Task start = _dequeueManager.Start(_tokenSource.Token);

            // Act
            InvalidOperationException ex = await Assert.ThrowsAsync<InvalidOperationException>(() => _dequeueManager.Start(_tokenSource.Token));

            // Assert
            Assert.Contains("This 'AzureWebHookDequeueManagerMock' instance has already been started. It can only be started once.", ex.Message);
        }