Beispiel #1
0
        public void Should_Rollback_Plugin()
        {
            IAllocationDefinition definition = new AllocationDefinition(1);
            definition.Add(DTO.NewPluginInfoTestPlugin2);

            TestPlugin2 plugin = new TestPlugin2(50);

            IExecutionSlot slot = new ExecutionSlot(definition);
            slot.Rollback( plugin );

            Timing.WaitUntil(() => plugin.Status == PluginStatus.Rolledback, 1000);

            Assert.AreEqual(PluginStatus.Rolledback, plugin.Status);
        }
Beispiel #2
0
        public void Should_Fail_Rollback_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.RollbackFailed += delegate(object sender, ObjectErrorEventArgs<IPlugin> eventArgs)
                                    {
                                        failedPlugin    = eventArgs.EventObject;
                                        pluginException = eventArgs.Exception;
                                    };

            slot.Rollback(plugin);

            Timing.WaitWhile(() => failedPlugin == null, 1000);

            Assert.AreEqual(plugin, failedPlugin);
            Assert.IsTrue(pluginException != null);
            Assert.AreEqual(PluginStatus.RollbackFailed, plugin.Status);
        }