<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tm="http://www.w3.org/2006/02/wsdl/TestMetadata">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	
	<xsl:variable name="implementations" select=".//implementation"/>
	<xsl:variable name="test-suite" select="document('../test-suite.xml')"/>

	<xsl:template match="/">
		<summary>
			<xsl:for-each select="document('../test-suite.xml')">
				<xsl:for-each select="test-suite/test-case">
					<xsl:variable name="name" select="@id"/>
					<xsl:for-each select="document(@href)">
						<xsl:for-each select="tm:TestMetadata[tm:Grouping='/documents/good']/tm:Inputs/tm:Input[not(@role) or @role='root']">
							<xsl:variable name="testcase" select="."/>
							<result name="{$name}" testcase="{$testcase}">
								<xsl:for-each select="$implementations">
									<xsl:variable name="results" select="document(concat(@results-folder,'/',$name,'/',substring-before($testcase,'.wsdl'),'.results.xml'))"/>
									<implementation vendor="{@name}">
										<xsl:choose>
											<xsl:when test="count($results) = 0">
												<xsl:attribute name="result">none</xsl:attribute>
											</xsl:when>
											<xsl:when test="$results/comparing/@required-extensions='false'">
												<xsl:attribute name="result">unsupported</xsl:attribute>
											</xsl:when>
											<xsl:when test="$results/comparing/no-archetype | $results/comparing/no-aspirant">
												<xsl:attribute name="result">none</xsl:attribute>
											</xsl:when>
											<xsl:otherwise>
												<xsl:variable name="failures" select="count($results/comparing/failure)"/>
												<xsl:choose>
													<xsl:when test="$failures = 0"><xsl:attribute name="result">passed</xsl:attribute></xsl:when>
													<xsl:otherwise><xsl:attribute name="result">failed</xsl:attribute></xsl:otherwise>
												</xsl:choose>
												<xsl:attribute name="failures"><xsl:value-of select="$failures"/></xsl:attribute>
												<xsl:attribute name="log"><xsl:value-of select="@results-folder"/>/<xsl:value-of select="$name"/>/<xsl:value-of select="substring-before($testcase,'.wsdl')"/>.results.xml</xsl:attribute>
											</xsl:otherwise>
										</xsl:choose>
									</implementation>
								</xsl:for-each>
							</result>
						</xsl:for-each>
					</xsl:for-each>
				</xsl:for-each>
			</xsl:for-each>
		</summary>
	</xsl:template>
</xsl:stylesheet>
