package xades4j.xml.marshalling.algorithms; import java.util.List; import java.util.Map; import org.apache.xml.security.utils.Constants; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import org.junit.Before; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import xades4j.algorithms.XPathTransform; import xades4j.utils.SignatureServicesTestBase; /** * * @author Luís */ public class XPathTransformParamsMarshallerTest { private Document doc; private XPathTransformParamsMarshaller sut; @Before public void setUp() throws Exception { doc = SignatureServicesTestBase.getNewDocument(); sut = new XPathTransformParamsMarshaller(); } @Test public void testMarshalXPathParametersWithNamespacePrefixes() throws Exception { XPathTransform xpath = new XPathTransform("foo:elem1/bar:elem2") .withNamespace("foo", "http://test.xades4j/ns1") .withNamespace("bar", "http://test.xades4j/ns2"); List<Node> params = sut.marshalParameters(xpath, doc); assertEquals(1, params.size()); Element paramNode = (Element) params.get(0); Map<String, String> namespaces = xpath.getNamespaces(); for (Map.Entry<String, String> entry : namespaces.entrySet()) { String ns = paramNode.getAttributeNS(Constants.NamespaceSpecNS, entry.getKey()); assertNotNull(ns); assertFalse(ns.isEmpty()); assertEquals(entry.getValue(), ns); } } }