public void Should_Commit_Plugin() { IAllocationDefinition definition = new AllocationDefinition(1); definition.Add(DTO.NewPluginInfoTestPlugin); TestPlugin plugin = new TestPlugin(50); IExecutionSlot slot = new ExecutionSlot(definition); slot.Commit( plugin ); Timing.WaitUntil(() => plugin.Status == PluginStatus.Committed, 1000); Assert.AreEqual( PluginStatus.Committed, plugin.Status ); }
public void Should_Fail_Commit_Plugin() { IAllocationDefinition definition = new AllocationDefinition(1); definition.Add(DTO.NewPluginInfoTestPlugin); TestPlugin plugin = new TestPlugin(50, true); IPlugin failedPlugin = null; Exception pluginException = null; IExecutionSlot slot = new ExecutionSlot(definition); slot.CommitFailed += delegate(object sender, ObjectErrorEventArgs<IPlugin> eventArgs) { failedPlugin = eventArgs.EventObject; pluginException = eventArgs.Exception; }; slot.Commit(plugin); Timing.WaitWhile(() => failedPlugin == null, 3000); Assert.AreEqual( plugin, failedPlugin ); Assert.IsNotNull( pluginException ); Assert.AreEqual( PluginStatus.CommitFailed, plugin.Status ); }