@@ -0,0 +1,1278 @@
+package com.googlecode.jslint4java.maven;%0A%0Aimport static com.googlecode.jslint4java.maven.RootCauseMatcher.*;%0Aimport static org.hamcrest.CoreMatchers.*;%0Aimport static org.junit.Assert.*;%0A%0Aimport org.junit.Rule;%0Aimport org.junit.Test;%0Aimport org.junit.rules.ExpectedException;%0A%0Apublic class RootCauseMatcherTest %7B%0A%0A    @Rule%0A    public ExpectedException kaboom = ExpectedException.none();%0A%0A    private final RuntimeException exc = new RuntimeException(new IllegalArgumentException(%22foo%22));%0A%0A    @Test%0A    public void shouldMatchRootClauseByClass() %7B%0A        assertThat(exc, rootCause(IllegalArgumentException.class));%0A    %7D%0A%0A    @Test%0A    public void shouldMatchRootClauseByMatcher() %7B%0A        assertThat(exc, rootCause(instanceOf(IllegalArgumentException.class)));%0A    %7D%0A%0A    @Test%0A    public void shouldNotMatchNonException() %7B%0A        assertThat(new Object(), not(rootCause(IllegalArgumentException.class)));%0A    %7D%0A%0A    @Test%0A    public void shouldDescribeFailure() %7B%0A        kaboom.handleAssertionErrors();%0A        kaboom.expect(AssertionError.class);%0A        kaboom.expectMessage(containsString(%22an exception with root cause%22));%0A%0A        // This should fail, and raise an AssertionErrror.%0A        assertThat(new Object(), rootCause(IllegalArgumentException.class));%0A    %7D%0A%7D%0A

Add a test for RootCauseMatcher.