Mercurial > pub > ImplabNet
comparison Implab.Test/AsyncTests.cs @ 138:f75cfa58e3d4 v2
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
| author | cin |
|---|---|
| date | Tue, 17 Feb 2015 18:16:26 +0300 |
| parents | e9e7940c7d98 |
| children | 706fccb85524 |
comparison
equal
deleted
inserted
replaced
| 137:238e15580926 | 138:f75cfa58e3d4 |
|---|---|
| 51 [TestMethod] | 51 [TestMethod] |
| 52 public void CancelExceptionTest() { | 52 public void CancelExceptionTest() { |
| 53 var p = new Promise<bool>(); | 53 var p = new Promise<bool>(); |
| 54 p.Cancel(); | 54 p.Cancel(); |
| 55 | 55 |
| 56 var p2 = p.Cancelled(() => { | 56 var p2 = p.Then(x => x, null, reason => { |
| 57 throw new ApplicationException("CANCELLED"); | 57 throw new ApplicationException("CANCELLED"); |
| 58 }); | 58 }); |
| 59 | 59 |
| 60 try { | 60 try { |
| 61 p2.Join(); | 61 p2.Join(); |
| 70 public void ContinueOnCancelTest() { | 70 public void ContinueOnCancelTest() { |
| 71 var p = new Promise<bool>(); | 71 var p = new Promise<bool>(); |
| 72 p.Cancel(); | 72 p.Cancel(); |
| 73 | 73 |
| 74 var p2 = p | 74 var p2 = p |
| 75 .Cancelled<bool>(() => { | 75 .Then<bool>(x => x, null, reason => { |
| 76 throw new ApplicationException("CANCELLED"); | 76 throw new ApplicationException("CANCELLED"); |
| 77 }) | 77 }) |
| 78 .Error(e => true); | 78 .Then(x => x, e => true); |
| 79 | 79 |
| 80 Assert.AreEqual(true, p2.Join()); | 80 Assert.AreEqual(true, p2.Join()); |
| 81 } | 81 } |
| 82 | 82 |
| 83 [TestMethod] | 83 [TestMethod] |
| 114 | 114 |
| 115 [TestMethod] | 115 [TestMethod] |
| 116 public void FixErrorTest() { | 116 public void FixErrorTest() { |
| 117 var p = new Promise<int>(); | 117 var p = new Promise<int>(); |
| 118 | 118 |
| 119 var p2 = p.Error(e => 101); | 119 var p2 = p.Then(x => x, e => 101); |
| 120 | 120 |
| 121 p.Reject(new Exception()); | 121 p.Reject(new Exception()); |
| 122 | 122 |
| 123 Assert.AreEqual(p2.Join(), 101); | 123 Assert.AreEqual(p2.Join(), 101); |
| 124 } | 124 } |
| 758 pSurvive.Resolve(false); | 758 pSurvive.Resolve(false); |
| 759 return s; | 759 return s; |
| 760 }); | 760 }); |
| 761 | 761 |
| 762 result | 762 result |
| 763 .Cancelled(() => pSurvive.Resolve(true)); | 763 .On(() => pSurvive.Resolve(true), PromiseEventType.Cancelled); |
| 764 | 764 |
| 765 return result; | 765 return result; |
| 766 }); | 766 }); |
| 767 | 767 |
| 768 hemStarted.WaitOne(); | 768 hemStarted.WaitOne(); |
