Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java')
-rw-r--r--bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java
new file mode 100644
index 000000000..8bf44cf63
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2002-2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message;
+
+import org.eclipse.wst.wsi.internal.core.WSIConstants;
+import org.eclipse.wst.wsi.internal.core.WSIException;
+import org.eclipse.wst.wsi.internal.core.profile.TestAssertion;
+import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext;
+import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess;
+import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator;
+import org.eclipse.wst.wsi.internal.core.report.AssertionResult;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+
+/**
+ * WSI1109.
+ * Any conformance claims MUST be children of the soap:Header element.
+ */
+public class WSI1109 extends AssertionProcess
+{
+ private final BaseMessageValidator validator;
+
+ /**
+ * @param BaseMessageValidator
+ */
+ public WSI1109(BaseMessageValidator impl)
+ {
+ super(impl);
+ this.validator = impl;
+ }
+
+ /**
+ * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext)
+ */
+ public AssertionResult validate(
+ TestAssertion testAssertion,
+ EntryContext entryContext)
+ throws WSIException
+ {
+
+ if ((entryContext.getMessageEntry() != null)
+ && (!this.validator.isOneWayResponse(entryContext)))
+ {
+ try
+ {
+ // Parse message
+ Document doc = entryContext.getMessageEntryDocument();
+ Element root = doc.getDocumentElement();
+ // find "Header" element
+ NodeList headerList =
+ root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Header");
+ Element headerElem = null;
+ if (headerList != null && headerList.getLength() != 0)
+ headerElem = (Element) headerList.item(0);
+
+ // find "Claim" element
+ NodeList claimList =
+ root.getElementsByTagNameNS(WSIConstants.NS_URI_CLAIM, "Claim");
+ if (claimList == null || claimList.getLength() == 0)
+ {
+ result = AssertionResult.RESULT_NOT_APPLICABLE;
+ }
+ else
+ {
+ for (int i = 0; i < claimList.getLength(); i++)
+ {
+ if (headerElem == null
+ || claimList.item(i).getParentNode() != headerElem)
+ {
+ result = AssertionResult.RESULT_FAILED;
+ failureDetail =
+ this.validator.createFailureDetail(
+ "\nSOAP message:\n"
+ + entryContext.getMessageEntry().getMessage(),
+ entryContext);
+ break;
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ result = AssertionResult.RESULT_NOT_APPLICABLE;
+ }
+ }
+ else
+ {
+ result = AssertionResult.RESULT_NOT_APPLICABLE;
+ }
+ // Return assertion result
+ return validator.createAssertionResult(testAssertion, result, failureDetail);
+ }
+} \ No newline at end of file

Back to the top