public void SetUp()
        {
            this.activityBuilder    = new GenerateErrorActivityBuilder(new XslBuilder(new XpathBuilder()));
            this.activity           = new GenerateErrorActivity("My", ActivityType.generateErrorActivity);
            this.activity.FaultName = "";
            var xml =
                @"
    <ns:ActivityInput xmlns:xsl=""http://w3.org/1999/XSL/Transform"" xmlns:ns=""http://www.tibco.com/pe/GenerateErrorActivitySchema"">
        <message>
            <xsl:value-of select=""'testvalue'""/>
        </message>
        <messageCode>
            <xsl:value-of select=""'EVL'""/>
        </messageCode>
    </ns:ActivityInput>
";
            XElement doc = XElement.Parse(xml);

            this.activity.InputBindings = doc.Nodes();
            this.activity.Parameters    = new List <ClassParameter> {
                new ClassParameter {
                    Name = "message",
                    Type = "System.String"
                },
                new ClassParameter {
                    Name = "messageCode",
                    Type = "System.String"
                }
            };
        }
        private CodeThrowExceptionStatement GenerateExceptionStatement(GenerateErrorActivity activity)
        {
            var parameters =
                AbstractActivityBuilder.GenerateParameters(
                    new List <string> {
                @"""Message : {0}\nMessage code : {1} """
            },
                    activity);

            var stringFormatCall = new CodeMethodInvokeExpression();

            stringFormatCall.Parameters.AddRange(parameters);

            var formatMethod = new CodeMethodReferenceExpression {
                MethodName = "Format"
            };
            var stringObject = new CodeVariableReferenceExpression {
                VariableName = "String"
            };

            formatMethod.TargetObject = stringObject;
            stringFormatCall.Method   = formatMethod;

            var throwException =
                new CodeThrowExceptionStatement(
                    new CodeObjectCreateExpression(new CodeTypeReference(typeof(System.Exception)), stringFormatCall));

            return(throwException);
        }
        public void SetUp()
        {
            this.activityParser = new GenerateErrorActivityParser();
            var xml =
                @"<pd:activity name=""ERROR activity"" xmlns:pd=""http://xmlns.tibco.com/bw/process/2003"" xmlns:xsl=""http://w3.org/1999/XSL/Transform"" xmlns:ns=""http://www.tibco.com/pe/GenerateErrorActivity/InputSchema"">
        <pd:type>com.tibco.pe.core.GenerateErrorActivity</pd:type>
        <pd:resourceType>ae.activities.throw</pd:resourceType>
        <pd:x>624</pd:x>
        <pd:y>253</pd:y>
        <config>
            <faultName>Info</faultName>
        </config>
        <pd:inputBindings>
            <ns:ActivityInput>
              <message>
                 <xsl:value-of select=""'ReadState'""/>
              </message>
              <messageCode>
                    <xsl:value-of select=""'Not last tuesday : trade filtered'""/>
                </messageCode>
            </ns:ActivityInput>
        </pd:inputBindings>
    </pd:activity>";

            doc           = XElement.Parse(xml);
            this.activity = (GenerateErrorActivity)this.activityParser.Parse(this.doc);
        }
        public Activity Parse(XElement inputElement)
        {
            var activity = new GenerateErrorActivity();

            activity.Name = inputElement.Attribute("name").Value;
            activity.Type = (ActivityType)inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "type").Value;
            var configElement = inputElement.Element("config");

            activity.FaultName = XElementParserUtils.GetStringValue(configElement.Element("faultName"));

            if (inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings") != null && inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element(XmlnsConstant.generateErrorActivityNameSpace + "ActivityInput") != null)
            {
                activity.InputBindings = inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element(XmlnsConstant.generateErrorActivityNameSpace + "ActivityInput").Nodes();
                activity.Parameters    = new XslParser().Parse(activity.InputBindings);
            }

            return(activity);
        }