Skip to content

Instantly share code, notes, and snippets.

@thieux
Created September 25, 2017 09:25
Show Gist options
  • Save thieux/76913bd16f57d1018f040a5efdc9afce to your computer and use it in GitHub Desktop.
Save thieux/76913bd16f57d1018f040a5efdc9afce to your computer and use it in GitHub Desktop.
Unit test in XSLT
<?xml version="1.0"?>
<root>
<name username="JS1">John</name>
<name username="MI1">Morka</name>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/persons">
<root>
<xsl:apply-templates select="persons"/>
</root>
</xsl:template>
<xsl:template match="person">
<name username="{@username}">
<xsl:value-of select="name" />
</name>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" ?>
<persons>
<person username="JS1">
<name>John</name>
<family-name>Smith</family-name>
</person>
<person username="MI1">
<name>Morka</name>
<family-name>Ismincius</family-name>
</person>
</persons>
#!/bin/bash
xsltproc extract-username.xslt persons.xml > /tmp/actual-username.xml
e=`openssl sha1 expected-username.xml | awk '{ print $2; }'`
a=`openssl sha1 /tmp/actual-username.xml | awk '{ print $2; }'`
if [[ "$a" == "$e" ]]; then
echo "pass"
else
echo "FAILURE"
vimdiff /tmp/actual-username.xml expected-username.xml
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment