package com.puppycrawl.tools.checkstyle.checks;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import com.puppycrawl.tools.checkstyle.api.AuditEvent;
import com.puppycrawl.tools.checkstyle.api.AuditListener;
public class XQueryCheckTest extends AbstractXmlCheckTest {
@Test
public void testNamespace() throws Exception {
// prepare
AuditListener listener = mock(AuditListener.class);
ArgumentCaptor<AuditEvent> argument = ArgumentCaptor
.forClass(AuditEvent.class);
// execute
processChecker("issues/xquery-namespace", listener);
// verify
verify(listener).addError(argument.capture());
assertEquals(XQueryCheck.class.getName(), argument.getValue()
.getSourceName());
}
@Test
public void testRequired() throws Exception {
// prepare
AuditListener listener = mock(AuditListener.class);
ArgumentCaptor<AuditEvent> argument = ArgumentCaptor
.forClass(AuditEvent.class);
// execute
processChecker("issues/xquery-required", listener);
// verify
verify(listener).addError(argument.capture());
assertEquals(XQueryCheck.class.getName(), argument.getValue()
.getSourceName());
assertEquals(
"Expected at least 1 match(es) for expression 'for $b in /bookstore/book" +
" where $b/title = 'XML for Dummies'" +
" return $b', but found 0.",
argument.getValue().getMessage());
}
}