public void Should_throw_task_canceled_exception()
{
var cancel = new CancellationTokenSource();
var payload = new Payload {Name = "Chris"};
Task<Payload> task = ComposerFactory.Compose(payload, composer =>
{
composer.Execute(x =>
{
x.Name = "Joe";
cancel.Cancel();
});
composer.Execute(x => { x.Name = "Mark"; });
}, cancel.Token);
Assert.Throws<TaskCanceledException>(async () => { Payload p = await task; });
Assert.AreEqual("Joe", payload.Name);
}
}