public void FetchNextJob_DelegatesItsExecution_ToTheQueue()
        {
            var token       = new CancellationToken();
            var queues      = new[] { "default" };
            var jobQueueDto = new JobQueueDto
            {
                Id        = ObjectId.GenerateNewId(),
                Queue     = "default",
                FetchedAt = null,
                JobId     = ObjectId.GenerateNewId()
            };

            _dbContext.JobGraph.InsertOne(jobQueueDto);

            var fetchedJob = _connection.FetchNextJob(queues, token);

            Assert.Equal(fetchedJob.JobId, jobQueueDto.JobId.ToString());
        }
        public void FetchNextJob_DelegatesItsExecution_ToTheQueue()
        {
            var token       = new CancellationToken();
            var queues      = new[] { "default" };
            var jobQueueDto = new JobQueueDto
            {
                Id        = ObjectId.GenerateNewId(),
                Queue     = "default",
                FetchedAt = null,
                JobId     = ObjectId.GenerateNewId()
            };

            _jobQueueSemaphoreMock.Setup(m => m.WaitNonBlock("default")).Returns(true);

            _dbContext.JobGraph.InsertOne(jobQueueDto);

            var fetchedJob = _connection.FetchNextJob(queues, token);

            Assert.Equal(fetchedJob.JobId, jobQueueDto.JobId.ToString());

            _jobQueueSemaphoreMock.Verify(m => m.WaitNonBlock("default"), Times.Once);
        }