public async Task Test_CanReadQueuedTask() { Faker <QueuedTask> qFaker = GetQueuedTaskFaker(); QueuedTask expectedTask = qFaker .Generate(); await mOperations .AddQueuedTaskAsync(expectedTask); using (NpgsqlConnection conn = await OpenDbConnectionAsync(ConnectionString)) using (NpgsqlCommand cmd = new NpgsqlCommand($"SELECT * FROM {mMapping.QueueTableName} WHERE task_id = @t_id", conn)) { cmd.Parameters.AddWithValue("t_id", NpgsqlDbType.Uuid, expectedTask.Id); await cmd.PrepareAsync(); using (NpgsqlDataReader rdr = await cmd.ExecuteReaderAsync()) { if (await rdr.ReadAsync()) { QueuedTask actualTask = await rdr.ReadQueuedTaskAsync(); Assert.NotNull(actualTask); Assert.NotNull(actualTask.Payload); Assert.IsInstanceOf <SampleTaskPayload>(actualTask.Payload); Assert.AreEqual((( SampleTaskPayload )expectedTask.Payload).Counter, (( SampleTaskPayload )actualTask.Payload).Counter); Assert.AreEqual(expectedTask.Id, actualTask.Id); Assert.IsTrue(actualTask.LockedUntilTs.EqualsAproximately(expectedTask.LockedUntilTs)); Assert.AreEqual(expectedTask.Type, actualTask.Type); Assert.AreEqual(expectedTask.Source, actualTask.Source); Assert.AreEqual(expectedTask.Priority, actualTask.Priority); Assert.IsTrue(actualTask.PostedAtTs.EqualsAproximately(expectedTask.PostedAtTs)); Assert.Greater(actualTask.LockHandleId, 0); } } await conn.CloseAsync(); } }