public async Task AssertTaskResultInDbAndCorrectAsync(IQueuedTaskToken newTaskToken)
        {
            QueuedTaskResult dbResult = await mDataSource.GetQueuedTaskResultFromDbByIdAsync(newTaskToken
                                                                                             .DequeuedTask
                                                                                             .Id);

            dbResult.AssertMatchesResult(newTaskToken
                                         .LastQueuedTaskResult);
        }
        private async Task Run_PostResultTests(Func <TaskExecutionResult> rsFactory)
        {
            using (PostgreSqlTaskResultQueue rq = CreateResultQueue())
            {
                await rq.StartAsync();

                foreach (IQueuedTaskToken token in mDataSource.SeededTaskTokens)
                {
                    token.UdpateFromExecutionResult(rsFactory.Invoke());
                    int affectedRows = await rq.PostResultAsync(token);

                    Assert.AreEqual(1, affectedRows);

                    QueuedTaskResult dbResult = await mDataSource
                                                .GetQueuedTaskResultFromDbByIdAsync(token.DequeuedTask.Id);

                    dbResult.AssertMatchesResult(token
                                                 .LastQueuedTaskResult);
                }

                await rq.StopAsync();
            }
        }