Beispiel #1
0
        private bool TryAddExpressionParameterr([NotNull] DynamicContextSettings dynamicContextSettings,
                                                [NotNull] XmlQualifiedName parameterName,
                                                [NotNull] string select,
                                                [NotNull] XPathSettings settings)
        {
            Assert.ArgumentNotNull(dynamicContextSettings, "dynamicContextSettings");
            Assert.ArgumentNotNull(parameterName, "parameterName");
            Assert.ArgumentNotNull(select, "select");
            Assert.ArgumentNotNull(settings, "settings");

            Log.LogMessage(MessageImportance.Low,
                           "adding parameter '{0}' as expression '{1}'", parameterName,
                           select);

            try
            {
                // TODO: Set base URI, handle errors differently
                var selectExpr = XPath.Compile(select, settings);

                if (selectExpr == null)
                {
                    Log.LogWarning("Parameter '{0}' has invalid value '{1}'", parameterName, select);
                    return(false);
                }

                var definition = selectExpr.Evaluate(dynamicContextSettings);
                dynamicContextSettings.Parameters.Add(parameterName, definition);
                return(true);
            }
            catch (XdmException e)
            {
                LogXdmException(Severity.Error, e.InnerException);
                return(false);
            }
        }
Beispiel #2
0
        public override bool TestAssertion(string assertion)
        {
            bool DocOK  = true;
            bool FileOK = true;

            if (resultDocument != null)
            {
                XPathSettings xpathSettings = new XPathSettings(nameTable)
                {
                    ContextItemType = XdmType.Node
                };
                var xpath       = XPath.Compile(assertion, xpathSettings);
                var contextItem = resultDocument.CreateNavigator();
                var settings    = new DynamicContextSettings {
                    ContextItem = contextItem
                };
                DocOK = xpath.EvaluateToItem(contextItem).ValueAsBoolean;
            }
            if (resultFile != null)
            {
                XdmDocument resultDoc;
                using (var reader = XmlReader.Create(resultFile, xmlReaderSettings))
                {
                    resultDoc = new XdmDocument(reader);
                    reader.Close();
                }
                XPathSettings xpathSettings = new XPathSettings(nameTable)
                {
                    ContextItemType = XdmType.Node
                };
                var xpath       = XPath.Compile(assertion, xpathSettings);
                var contextItem = resultDoc.CreateNavigator();
                var settings    = new DynamicContextSettings {
                    ContextItem = contextItem
                };
                FileOK = xpath.EvaluateToItem(contextItem).ValueAsBoolean;
            }
            return(DocOK && FileOK);
        }