package org.eclipse.recommenders.completion.rcp.it;
import static org.junit.Assert.assertEquals;
import org.eclipse.jdt.core.CompletionProposal;
import org.eclipse.jdt.internal.ui.text.java.ProposalInfo;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.recommenders.completion.rcp.processable.BaseRelevanceSessionProcessor;
import org.eclipse.recommenders.completion.rcp.processable.IProcessableProposal;
import org.eclipse.recommenders.completion.rcp.processable.IProposalTag;
import org.eclipse.recommenders.completion.rcp.processable.ProposalProcessorManager;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.junit.Test;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet;
@SuppressWarnings("restriction")
public class BaseRelevanceSessionProcessorTest {
@Test
public final void test() throws Exception {
// setup
IProcessableProposal p = new FakeProcessableProposal();
p.setRelevance(200);
p.setStyledDisplayString(new StyledString("some"));
p.setProposalProcessorManager(new ProposalProcessorManager(p));
BaseRelevanceSessionProcessor sut = new BaseRelevanceSessionProcessor();
// exercise
sut.process(p);
p.getProposalProcessorManager().prefixChanged("");
// verify
assertEquals(200, p.getRelevance());
}
private static final class FakeProcessableProposal implements IProcessableProposal {
private int relevance;
private StyledString styledDisplayString;
private ProposalProcessorManager mgr;
private String prefix;
@Override
public Point getSelection(IDocument document) {
return null;
}
@Override
public Image getImage() {
return null;
}
@Override
public String getDisplayString() {
return styledDisplayString.toString();
}
@Override
public IContextInformation getContextInformation() {
return null;
}
@Override
public String getAdditionalProposalInfo() {
return null;
}
@Override
public void apply(IDocument document) {
}
@Override
public int getRelevance() {
return relevance;
}
@Override
public void setStyledDisplayString(StyledString styledDisplayString) {
this.styledDisplayString = styledDisplayString;
}
@Override
public void setRelevance(int newRelevance) {
relevance = newRelevance;
}
@Override
public void setProposalProcessorManager(ProposalProcessorManager mgr) {
this.mgr = mgr;
}
@Override
public StyledString getStyledDisplayString() {
return styledDisplayString;
}
@Override
public ProposalProcessorManager getProposalProcessorManager() {
return mgr;
}
@Override
public String getPrefix() {
return prefix;
}
@Override
public Optional<CompletionProposal> getCoreProposal() {
return null;
}
@Override
public void setImage(Image image) {
}
@Override
public void setTag(IProposalTag key, Object value) {
}
@Override
public <T> Optional<T> getTag(IProposalTag key) {
return null;
}
@Override
public <T> T getTag(IProposalTag key, T defaultValue) {
return null;
}
@Override
public <T> Optional<T> getTag(String key) {
return null;
}
@Override
public <T> T getTag(String key, T defaultValue) {
return null;
}
@Override
public ImmutableSet<IProposalTag> tags() {
return null;
}
@Override
public void setProposalInfo(ProposalInfo info) {
}
}
}