public override void Execute()
        {
            MAObjectHologram sourceObject = this.GetObjectFromAlias();

            Rule.RuleFailedEvent           += RuleBase_RuleFailedEvent;
            RuleGroup.RuleGroupFailedEvent += RuleGroup_RuleGroupFailedEvent;
            try
            {
                if (!this.SuccessCriteria.Evaluate(sourceObject))
                {
                    Logger.WriteLine("The unit test evaluation {0} failed", this.Name);
                    Logger.WriteSeparatorLine('-');
                    Logger.WriteLine("MAObject drop");
                    Logger.WriteRaw(sourceObject.AttributeDataToString());
                    Logger.WriteSeparatorLine('-');

                    throw new EvaluationFailedException();
                }
            }
            finally
            {
                Rule.RuleFailedEvent           -= RuleBase_RuleFailedEvent;
                RuleGroup.RuleGroupFailedEvent -= RuleGroup_RuleGroupFailedEvent;
            }
        }