public void IAsyncOperation_AsTask_Error()
		{
			var error = new Exception("error");
			var operation = new MockAsyncOperation<bool>();
			Task<bool> t = operation.AsTask();

			operation.ErrorCode = error;
			operation.Status = AsyncStatus.Error;
			operation.Completed (operation, operation.Status);

			Assert.IsTrue (t.IsFaulted);
			Assert.AreSame (error, t.Exception.InnerExceptions.First());
			Assert.Throws<AggregateException>(t.Wait);
		}
		public void IAsyncOperation_AsTask_Completed()
		{
			var operation = new MockAsyncOperation<bool>();
			Task<bool> t = operation.AsTask();

			operation.Result = true;
			operation.Status = AsyncStatus.Completed;
			operation.Completed (operation, operation.Status);

			Assert.AreEqual (TaskStatus.RanToCompletion, t.Status);
			Assert.AreEqual (true, t.Result);
		}