Files
csharp/tests/KubernetesClient.Tests/TaskAssert.cs
Boshi Lian 16845bae1d Style fix1 (#512)
* fix SA1505 and SA1508

* fix SA1116

* fix SA1009

* fix SA1019

* fix SA1127

* fix SA1128

* fix SA1134

* fix indent

* allow CA2227

* fix CA1810

* using clean up

* fix naming

* fix CA1806

* fix await

* Revert "fix CA1806"

This reverts commit a3b465087fdaf26ec461272373ee9810a90de2cc.

* fix dotnet format

* allow SA1009
2020-11-01 12:24:51 -08:00

38 lines
1.3 KiB
C#

using System;
using System.Threading.Tasks;
using Xunit;
namespace k8s.Tests
{
internal static class TaskAssert
{
public static void NotCompleted(Task task, string message = "Task should not be completed")
{
Assert.False(task.IsCompleted, message);
}
public static async Task Completed(Task task, TimeSpan timeout, string message = "Task timed out")
{
var timeoutTask = Task.Delay(
TimeSpan.FromMilliseconds(1000));
var completedTask = await Task.WhenAny(task, timeoutTask).ConfigureAwait(false);
Assert.True(ReferenceEquals(task, completedTask), message);
await completedTask.ConfigureAwait(false);
}
public static async Task<T> Completed<T>(Task<T> task, TimeSpan timeout, string message = "Task timed out")
{
var timeoutTask = Task.Delay(TimeSpan.FromMilliseconds(1000)).ContinueWith(completedTimeoutTask => default(T));
// Value is never returned, but we need a task of the same result type in order to use Task.WhenAny.
var completedTask = await Task.WhenAny(task, timeoutTask).ConfigureAwait(false);
Assert.True(ReferenceEquals(task, completedTask), message);
return await completedTask.ConfigureAwait(false);
}
}
}