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;
 }