2024-01-25 20:42:42 +09:00
|
|
|
#pragma warning disable CS1998
|
|
|
|
|
|
2023-09-01 10:37:46 +09:00
|
|
|
using System;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
namespace NetCoreTests
|
|
|
|
|
{
|
|
|
|
|
public class TaskExtensionsTest
|
|
|
|
|
{
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task PropagateException()
|
|
|
|
|
{
|
|
|
|
|
await Assert.ThrowsAsync<InvalidOperationException>(async () =>
|
|
|
|
|
{
|
|
|
|
|
await ThrowAsync().AsUniTask();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await Assert.ThrowsAsync<InvalidOperationException>(async () =>
|
|
|
|
|
{
|
|
|
|
|
await ThrowOrValueAsync().AsUniTask();
|
|
|
|
|
});
|
2023-09-01 16:58:11 +09:00
|
|
|
}
|
2023-09-08 18:43:41 +09:00
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task PropagateExceptionWhenAll()
|
|
|
|
|
{
|
|
|
|
|
await Assert.ThrowsAsync<InvalidOperationException>(async () =>
|
|
|
|
|
{
|
|
|
|
|
await Task.WhenAll(ThrowAsync(), ThrowAsync()).AsUniTask();
|
|
|
|
|
});
|
|
|
|
|
}
|
2023-09-01 16:58:11 +09:00
|
|
|
|
2023-09-01 10:37:46 +09:00
|
|
|
async Task ThrowAsync()
|
|
|
|
|
{
|
|
|
|
|
throw new InvalidOperationException();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async Task<int> ThrowOrValueAsync()
|
|
|
|
|
{
|
|
|
|
|
throw new InvalidOperationException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|