Example #1
0
        private async Task Assert_ResultAddedOrUpdatedCorrectly(IQueuedTask queuedTask)
        {
            IQueuedTaskResult queuedTaskResult = await mDataSource
                                                 .GetQueuedTaskResultFromDbByIdAsync(queuedTask.Id);

            Assert.NotNull(queuedTaskResult);
            Assert.NotNull(queuedTaskResult.Payload);

            Assert.AreEqual(queuedTask.Id,
                            queuedTaskResult.Id);
            Assert.AreEqual(queuedTask.Type,
                            queuedTaskResult.Type);
            Assert.AreEqual(queuedTask.Source,
                            queuedTaskResult.Source);
            Assert.AreEqual(queuedTask.Priority,
                            queuedTaskResult.Priority);
            Assert.LessOrEqual(Math.Abs((queuedTask.PostedAtTs - queuedTaskResult.PostedAtTs).TotalMilliseconds),
                               10);
            Assert.AreEqual(QueuedTaskStatus.Unprocessed,
                            queuedTaskResult.Status);
        }
        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();
            }
        }