package org.jnario.ui.tests.util; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.xtext.ISetup; import org.eclipse.xtext.junit4.AbstractXtextTests; import org.eclipse.xtext.junit4.ui.AbstractContentAssistProcessorTest; import org.eclipse.xtext.junit4.ui.ContentAssistProcessorTestBuilder; import org.junit.Assert; public abstract class AbstractContentAssistProcessorTest2 extends AbstractContentAssistProcessorTest { public class ContentAssistProcessorTestBuilder2 extends ContentAssistProcessorTestBuilder { public class ProposalTester { private ICompletionProposal proposal; protected ProposalTester(ICompletionProposal proposal) { this.proposal = proposal; } public ProposalTester withDisplayString(String displayString) { Assert.assertEquals("displayString", displayString, proposal.getDisplayString()); return this; } public ContentAssistProcessorTestBuilder apply() throws Exception { return ContentAssistProcessorTestBuilder2.this.applyProposal(proposal); } } public ContentAssistProcessorTestBuilder2(ISetup setupClazz, AbstractXtextTests tests) throws Exception { super(setupClazz, tests); } public void assertProposalsContainNot(String expectedText) throws Exception { String currentModelToParse = getModel(); ICompletionProposal[] proposals = computeCompletionProposals(currentModelToParse, getCursorPosition()); if (proposals == null) proposals = new ICompletionProposal[0]; for(ICompletionProposal proposal: proposals) { if (expectedText.equals(toString(proposal))) { Assert.fail("Unexpected proposal: " + expectedText + " Found: " + toString(proposals)); } } } @Override public ContentAssistProcessorTestBuilder2 append(String model) throws Exception { return (ContentAssistProcessorTestBuilder2) super.append(model); } } @Override protected ContentAssistProcessorTestBuilder2 newBuilder() throws Exception { return (ContentAssistProcessorTestBuilder2) super.newBuilder(); } @Override protected ContentAssistProcessorTestBuilder2 newBuilder(ISetup setup) throws Exception { return new ContentAssistProcessorTestBuilder2(setup, this); } }