in rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs [545:614]
public void TestTryBracketGood()
{
var log = 0;
void Inner(Action action)
{
log = 0;
def = new LifetimeDefinition();
action();
Assert.AreEqual(1, log);
def.Terminate();
Assert.AreEqual(11, log);
}
//Action + Action
Inner(() => Assert.True(Result.Unit == lt.TryBracket(() =>
{
log += 1;
},
() => { log += 10; }
)));
Inner(() => Assert.True(Result.Unit == lt.TryBracket(() =>
{
log += 1;
},
() => { log += 10; }
, true)));
//Func<T> + Action
Inner(() => Assert.True(Result.Success(1) == lt.TryBracket(() =>
{
log += 1;
return 1;
},
() => { log += 10; }
)));
Inner(() => Assert.True(Result.Success(1) == lt.TryBracket(() =>
{
log += 1;
return 1;
},
() => { log += 10; }
, true)));
//Func<T> + Action<T>
Inner(() => Assert.True(Result.Success(10) == lt.TryBracket(() =>
{
log += 1;
return 10;
},
x => { log += x; }
)));
Inner(() => Assert.True(Result.Success(10) == lt.TryBracket(() =>
{
log += 1;
return 10;
},
x => { log += x; }
, true)));
}