コード例 #1
0
        public void DisposeWithoutRemoval_OnFetchedJob_ReturnsTheJobToTheQueue()
        {
            // Arrange
            RabbitMqUtils.EnqueueJobId("my-queue", "job-id");

            using (var queue = CleanRabbitMqQueueAttribute.GetMessageQueue("my-queue"))
            {
                // Act
                var fetchedJob = queue.Dequeue(new[] { "my-queue" }, _token);
                fetchedJob.Dispose();

                // Assert
                var jobId = RabbitMqUtils.DequeueJobId("my-queue", TimeSpan.FromSeconds(5));
                Assert.Equal("job-id", jobId);
            }
        }
コード例 #2
0
        public void RemoveFromQueue_OnFetchedJob_RemovesTheJobCompletely()
        {
            // Arrange
            RabbitMqUtils.EnqueueJobId("my-queue", "job-id");
            using (var queue = CleanRabbitMqQueueAttribute.GetMessageQueue("my-queue"))
            {
                // Act
                using (var fetchedJob = queue.Dequeue(new[] { "my-queue" }, _token))
                {
                    fetchedJob.RemoveFromQueue();
                }

                // Assert
                var exception = Assert.Throws <TimeoutException>(
                    () => RabbitMqUtils.DequeueJobId("my-queue", TimeSpan.FromSeconds(1)));

                Assert.Equal(exception.Message, "my-queue");
            }
        }
コード例 #3
0
        public void Dequeue_MakesJobInvisibleForOtherFetchers()
        {
            // Arrange
            RabbitMqUtils.EnqueueJobId("my-queue", "job-id9");

            using (var queue = CleanRabbitMqQueueAttribute.GetMessageQueue("my-queue"))
            {
                // Act
                var fetchedJob = queue.Dequeue(new[] { "my-queue" }, _token);

                // Assert
                Assert.NotNull(fetchedJob);

                var exception = Assert.Throws <TimeoutException>(
                    () => RabbitMqUtils.DequeueJobId("my-queue", TimeSpan.FromSeconds(1)));

                Assert.Equal(exception.Message, "my-queue");
            }
        }