Files
SystemExtensions/SystemExtensions.Tests/Threading/AsyncLazyTests.cs
T
amacocian 7222528eed Update dependencies (#16)
* Update dependencies
Implement AsyncLazy
Fix namespaces
Fix CD pipeline

* Fix code issues
Fix Int64BitStruct test
2022-06-02 10:42:34 +02:00

48 lines
1018 B
C#

using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
namespace System.Tests;
[TestClass]
public class AsyncLazyTests
{
private const string Value = "Value";
[TestMethod]
public async Task ValueFactoryConstructor_AwaitsAndReturnsValue()
{
var asyncLazy = new AsyncLazy<string>(() => Value);
var value = await asyncLazy;
value.Should().Be(Value);
}
[TestMethod]
public async Task TaskFactoryConstructor_AwaitsAndReturnsValue()
{
var asyncLazy = new AsyncLazy<string>(GetValueTask);
var value = await asyncLazy;
value.Should().Be(Value);
}
[TestMethod]
public async Task Value_ReturnsValue()
{
var asyncLazy = new AsyncLazy<string>(GetValueTask);
var value = await asyncLazy.Value;
value.Should().Be(Value);
}
private static async Task<string> GetValueTask()
{
await Task.Delay(10);
return Value;
}
}