Mercurial > pub > ImplabNet
comparison Implab.Test/RunnableComponentTests.cs @ 205:8200ab154c8a v2
Added ResetState to RunnableComponent to reset in case of failure
Added StateChanged event to IRunnable
Renamed Promise.SUCCESS -> Promise.Success
Added Promise.FromException
Renamed Bundle -> PromiseAll in PromiseExtensions
| author | cin | 
|---|---|
| date | Tue, 25 Oct 2016 17:40:33 +0300 | 
| parents | 4d9830a9bbb8 | 
| children | 7d07503621fe | 
   comparison
  equal
  deleted
  inserted
  replaced
| 203:4d9830a9bbb8 | 205:8200ab154c8a | 
|---|---|
| 37 public void NormalFlowTest() { | 37 public void NormalFlowTest() { | 
| 38 var comp = new MockRunnableComponent(false); | 38 var comp = new MockRunnableComponent(false); | 
| 39 | 39 | 
| 40 Assert.AreEqual(ExecutionState.Created, comp.State); | 40 Assert.AreEqual(ExecutionState.Created, comp.State); | 
| 41 | 41 | 
| 42 comp.Init(); | 42 comp.Initialize(); | 
| 43 | 43 | 
| 44 Assert.AreEqual(ExecutionState.Ready, comp.State); | 44 Assert.AreEqual(ExecutionState.Ready, comp.State); | 
| 45 | 45 | 
| 46 comp.Start().Join(1000); | 46 comp.Start().Join(1000); | 
| 47 | 47 | 
| 63 | 63 | 
| 64 ShouldThrow(() => comp.Start()); | 64 ShouldThrow(() => comp.Start()); | 
| 65 ShouldThrow(() => comp.Stop()); | 65 ShouldThrow(() => comp.Stop()); | 
| 66 Assert.AreEqual(ExecutionState.Created, comp.State); | 66 Assert.AreEqual(ExecutionState.Created, comp.State); | 
| 67 | 67 | 
| 68 ShouldThrow(comp.Init); | 68 ShouldThrow(comp.Initialize); | 
| 69 | 69 | 
| 70 Assert.AreEqual(ExecutionState.Failed, comp.State); | 70 Assert.AreEqual(ExecutionState.Failed, comp.State); | 
| 71 | 71 | 
| 72 ShouldThrow(() => comp.Start()); | 72 ShouldThrow(() => comp.Start()); | 
| 73 ShouldThrow(() => comp.Stop()); | 73 ShouldThrow(() => comp.Stop()); | 
| 83 var comp = new MockRunnableComponent(false); | 83 var comp = new MockRunnableComponent(false); | 
| 84 comp.Dispose(); | 84 comp.Dispose(); | 
| 85 | 85 | 
| 86 ShouldThrow(() => comp.Start()); | 86 ShouldThrow(() => comp.Start()); | 
| 87 ShouldThrow(() => comp.Stop()); | 87 ShouldThrow(() => comp.Stop()); | 
| 88 ShouldThrow(comp.Init); | 88 ShouldThrow(comp.Initialize); | 
| 89 | 89 | 
| 90 Assert.AreEqual(ExecutionState.Disposed, comp.State); | 90 Assert.AreEqual(ExecutionState.Disposed, comp.State); | 
| 91 } | |
| 92 | |
| 93 [TestMethod] | |
| 94 public void ShouldCallDisposeOnStop() { | |
| 95 var comp = new MockRunnableComponent(true); | |
| 96 | |
| 97 bool disposed = false; | |
| 98 comp.MockDispose = (disposing, error) => { | |
| 99 disposed = true; | |
| 100 }; | |
| 101 | |
| 102 comp.Start().Join(1000); | |
| 103 comp.Stop().Join(1000); | |
| 104 | |
| 105 ShouldThrow(() => comp.Start()); | |
| 106 ShouldThrow(() => comp.Stop()); | |
| 107 ShouldThrow(comp.Initialize); | |
| 108 | |
| 109 Assert.AreEqual(ExecutionState.Disposed, comp.State); | |
| 110 Assert.IsTrue(disposed); | |
| 111 } | |
| 112 | |
| 113 [TestMethod] | |
| 114 public void ShouldNotCallDisposeOnStop() { | |
| 115 var comp = new MockRunnableComponent(true, true); | |
| 116 | |
| 117 bool disposed = false; | |
| 118 comp.MockDispose = (disposing, error) => { | |
| 119 disposed = true; | |
| 120 }; | |
| 121 | |
| 122 comp.Start().Join(1000); | |
| 123 comp.Stop().Join(1000); | |
| 124 | |
| 125 Assert.AreEqual(ExecutionState.Ready, comp.State); | |
| 126 Assert.IsFalse(disposed); | |
| 127 } | |
| 128 | |
| 129 [TestMethod] | |
| 130 public void SelfDisposeOnStop() { | |
| 131 var comp = new MockRunnableComponent(true, true); | |
| 132 | |
| 133 bool disposed = false; | |
| 134 Exception lastError = null; | |
| 135 comp.MockDispose = (disposing, error) => { | |
| 136 disposed = true; | |
| 137 lastError = error; | |
| 138 }; | |
| 139 | |
| 140 comp.Start().Join(1000); | |
| 141 comp.Stop().Join(1000); | |
| 142 | |
| 143 Assert.AreEqual(ExecutionState.Ready, comp.State); | |
| 144 Assert.IsFalse(disposed); | |
| 145 | |
| 146 comp.MockStop = () => { | |
| 147 comp.Dispose(); | |
| 148 return Promise.Success; | |
| 149 }; | |
| 150 | |
| 151 comp.Start().Join(1000); | |
| 152 comp.Stop().Join(1000); | |
| 153 | |
| 154 Assert.AreEqual(ExecutionState.Disposed, comp.State); | |
| 155 Assert.IsTrue(disposed); | |
| 91 } | 156 } | 
| 92 | 157 | 
| 93 [TestMethod] | 158 [TestMethod] | 
| 94 public void StartCancelTest() { | 159 public void StartCancelTest() { | 
| 95 var comp = new MockRunnableComponent(true) { | 160 var comp = new MockRunnableComponent(true) { | 
