package org.eclipse.recommenders.internal.snipmatch.rcp.completion;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.*;
import org.eclipse.jdt.core.CompletionContext;
import org.eclipse.jdt.ui.text.IJavaPartitions;
import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext;
import org.eclipse.jface.text.IDocument;
import org.eclipse.recommenders.snipmatch.Location;
import org.junit.Test;
public class JavaContentAssistProcessorGetLocationTest {
@Test
public void testGetLocationInJavadoc() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
Location location = JavaContentAssistProcessor.getLocation(context, IJavaPartitions.JAVA_DOC);
assertThat(location, is(Location.JAVADOC));
}
@Test
public void testGetLocationInSingleLineComment() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
Location location = JavaContentAssistProcessor.getLocation(context, IJavaPartitions.JAVA_SINGLE_LINE_COMMENT);
assertThat(location, is(Location.JAVA_FILE));
}
@Test
public void testGetLocationInMultiLineComment() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
Location location = JavaContentAssistProcessor.getLocation(context, IJavaPartitions.JAVA_MULTI_LINE_COMMENT);
assertThat(location, is(Location.JAVA_FILE));
}
@Test
public void testGetLocationAtJavaTypeMemberStart() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
CompletionContext coreContext = mock(CompletionContext.class);
when(coreContext.getTokenLocation()).thenReturn(CompletionContext.TL_MEMBER_START);
when(context.getCoreContext()).thenReturn(coreContext);
Location location = JavaContentAssistProcessor.getLocation(context, IDocument.DEFAULT_CONTENT_TYPE);
assertThat(location, is(Location.JAVA_TYPE_MEMBERS));
}
@Test
public void testGetLocationAtJavaStatementStart() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
CompletionContext coreContext = mock(CompletionContext.class);
when(coreContext.getTokenLocation()).thenReturn(CompletionContext.TL_STATEMENT_START);
when(context.getCoreContext()).thenReturn(coreContext);
Location location = JavaContentAssistProcessor.getLocation(context, IDocument.DEFAULT_CONTENT_TYPE);
assertThat(location, is(Location.JAVA_STATEMENTS));
}
@Test
public void testUnknownTokenLocation() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
CompletionContext coreContext = mock(CompletionContext.class);
when(coreContext.getTokenLocation()).thenReturn(CompletionContext.TOKEN_KIND_UNKNOWN);
when(context.getCoreContext()).thenReturn(coreContext);
Location location = JavaContentAssistProcessor.getLocation(context, IDocument.DEFAULT_CONTENT_TYPE);
assertThat(location, is(Location.JAVA_FILE));
}
@Test
public void testCoreContextUnavailable() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
Location location = JavaContentAssistProcessor.getLocation(context, IDocument.DEFAULT_CONTENT_TYPE);
assertThat(location, is(Location.JAVA_FILE));
}
@Test
public void testUnknownPartition() {
JavaContentAssistInvocationContext context = mock(JavaContentAssistInvocationContext.class);
Location location = JavaContentAssistProcessor.getLocation(context, "unknown");
assertThat(location, is(Location.JAVA_FILE));
}
}