public void KnownTransformWithValidXslFile()
    {
        var config = new XunitConsoleConfigurationSection();
        config.Transforms = new TestableTransformConfigItem("known", "xslFile.xsl");
        var assembly = new XunitProjectAssembly();
        assembly.Output["known"] = "foo.xml";
        var factory = new TestableTransformFactory(config);

        List<IResultXmlTransform> transforms = factory.GetTransforms(assembly);

        IResultXmlTransform transform = Assert.Single(transforms);
        var xslTransform = Assert.IsType<XslStreamTransformer>(transform);
        Assert.Equal("foo.xml", xslTransform.OutputFilename);
        Assert.Equal("xslFile.xsl", Path.GetFileName(xslTransform.XslFilename));
    }
    public void KnownTransformWithMissingXslFile()
    {
        var config = new XunitConsoleConfigurationSection();
        config.Transforms = new TestableTransformConfigItem("known", "xslFile.xsl");
        var assembly = new XunitProjectAssembly();
        assembly.Output["known"] = "foo.xml";
        var factory = new TestableTransformFactory(config);
        factory.FileExistsResult = false;

        Exception ex = Record.Exception(() => factory.GetTransforms(assembly));

        Assert.IsType<ArgumentException>(ex);
        Assert.Contains("cannot find transform XSL file", ex.Message);
        Assert.Contains("xslFile.xsl", ex.Message);
        Assert.Contains("for transform 'known'", ex.Message);
    }
 public TestableTransformFactory(XunitConsoleConfigurationSection config)
 {
     Config = config;
 }