Package com.googlecode.jslint4java.ant

Source Code of com.googlecode.jslint4java.ant.JUnitXmlResultFormatterTest

package com.googlecode.jslint4java.ant;

import static org.junit.Assert.*;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.tools.ant.BuildException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;

import com.googlecode.jslint4java.JSLintResult;

public class JUnitXmlResultFormatterTest {

    private final JUnitXmlResultFormatter formatter = new JUnitXmlResultFormatter();
    @Rule
    public TemporaryFolder folder = new TemporaryFolder();

    @Rule
    public ExpectedException thrown = ExpectedException.none();

    private JSLintResult aResult(String name) {
        return new JSLintResult.ResultBuilder(name).build();
    }

    private void formatResult(JSLintResult result) {
        formatter.begin();
        formatter.output(result);
        formatter.end();
    }

    @Test
    public void testFileSetReallyIsFile() throws Exception {
        thrown.expect(BuildException.class);
        thrown.expectMessage("must be a directory");
        JSLintResult result = aResult("foo.js");
        formatter.setFile(folder.newFile("foo"));
        formatResult(result);
    }

    @Test
    public void testNoFileSet() {
        thrown.expect(BuildException.class);
        thrown.expectMessage("must set destFile attribute");
        formatResult(aResult("foo.js"));
    }

    @Test
    public void testNormality() {
        // File is set to a pre-existing directory.
        formatter.setFile(folder.getRoot());
        formatResult(aResult("foo.js"));
        File expected = new File(folder.getRoot(), "TEST-foo.js.xml");
        assertTrue(expected.exists());
    }

    @Test
    public void testReadOnlyFileBlowsUp() throws IOException {
        thrown.expect(BuildException.class);
        // It'd be nicer if we had expectRootCause()
        thrown.expectMessage(FileNotFoundException.class.getName());
        File output = folder.newFile("TEST-foo.js.xml");
        assertTrue(output.setReadOnly());
        formatter.setFile(folder.getRoot());
        // Should blow up when write occurs.
        formatResult(aResult("foo.js"));
    }

    @Test
    public void testNonAlphaNumericFilename() {
        formatter.setFile(folder.getRoot());
        formatResult(aResult("a&b.js"));
        File expected = new File(folder.getRoot(), "TEST-a_b.js.xml");
        assertTrue(expected.exists());
    }

}
TOP

Related Classes of com.googlecode.jslint4java.ant.JUnitXmlResultFormatterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.