public void Should_Execute_IPlugin() { IExecutionManager manager = new ExecutionManager( new PluginManager() ); IAllocationDefinition definition = new AllocationDefinition( 2 ); IExecutionSlot slot = new ExecutionSlot(definition); definition.Add( DTO.NewPluginInfoTestPlugin ); manager.PluginManager.Install( definition ); manager.Add( slot ); IPlugin completedPlugin = null; TestPlugin testPlugin = new TestPlugin(100); manager.ExecuteCompleted += delegate(object sender, ObjectEventArgs<IPlugin> eventArgs) { completedPlugin = eventArgs.EventObject; }; manager.Execute( testPlugin ); Assert.AreEqual( slot, manager[ definition ] ); Assert.AreEqual( 1, manager[ definition ].UsedSlots ); Timing.WaitWhile(() => completedPlugin == null, 1000); Assert.AreEqual( testPlugin, completedPlugin ); Assert.AreEqual( 0, manager[ definition ].UsedSlots ); Assert.AreEqual( PluginStatus.Executed, testPlugin.Status ); }
public void Should_Add_ExecutionSlot() { IExecutionManager manager = new ExecutionManager( new PluginManager() ); IAllocationDefinition definition = new AllocationDefinition( 2 ); definition.Add( DTO.NewPluginInfoTestPlugin ); manager.PluginManager.Install( definition ); manager.Add( new ExecutionSlot( definition ) ); Assert.AreEqual( 1, manager.Count ); }