Search in sources :

Example 1 with Config

use of org.eclipse.n4js.xpect.config.Config in project n4js by eclipse.

the class ContentAssistXpectMethod method assertContainingMatchAllOrdered.

private void assertContainingMatchAllOrdered(List<String> proposals, List<String> required, CommaSeparatedValuesExpectationImpl exp) {
    List<String> matched = Lists.newArrayList();
    HashMap<String, Integer> match2index = new HashMap<>();
    // TODO review if needed
    // boolean orderBroken = false;
    int highestIdx = 0;
    for (int i = 0; i < required.size(); i++) {
        String r = required.get(i);
        Optional<String> prop = proposals.stream().filter(p -> p.contains(r)).findFirst();
        if (prop.isPresent()) {
            int idx = proposals.indexOf(prop.get());
            if (highestIdx >= idx) {
            // orderBroken = true;
            }
            matched.add(r);
            match2index.put(r, idx);
            highestIdx = Math.max(highestIdx, idx);
        }
    }
    // create the matchedOrder:
    List<String> matchedOrder = match2index.entrySet().stream().sorted(new Comparator<Map.Entry<String, Integer>>() {

        @Override
        public int compare(Entry<String, Integer> e1, Entry<String, Integer> e2) {
            return e1.getValue().compareTo(e2.getValue());
        }
    }).map(sme -> sme.getKey()).collect(Collectors.toList());
    // change config to ordered:
    CommaSeparatedValuesExpectationCfg cfg = new CommaSeparatedValuesExpectationCfg(exp.getAnnotation());
    cfg.setOrdered(true);
    CommaSeparatedValuesExpectationImpl expNCSV = new CommaSeparatedValuesExpectationImpl(exp, cfg);
    expNCSV.assertEquals(matchedOrder);
}
Also used : VarDef(org.eclipse.n4js.xpect.config.VarDef) Arrays(java.util.Arrays) IExpectationRegion(org.eclipse.xpect.expectation.IExpectationRegion) ISetupInitializer(org.eclipse.xpect.setup.ISetupInitializer) ThisResource(org.eclipse.xpect.xtext.lib.setup.ThisResource) Inject(com.google.inject.Inject) ICommaSeparatedValuesExpectation(org.eclipse.xpect.expectation.ICommaSeparatedValuesExpectation) HashMap(java.util.HashMap) QuickFixTestHelper.extractSingleChangedLine(org.eclipse.n4js.xpect.ui.common.QuickFixTestHelper.extractSingleChangedLine) AtomicReference(java.util.concurrent.atomic.AtomicReference) Point(org.eclipse.swt.graphics.Point) XtextResourceCleanUtil(org.eclipse.n4js.xpect.ui.common.XtextResourceCleanUtil) Logger(org.apache.log4j.Logger) QuickFixTestHelper.separateOnCommaAndQuote(org.eclipse.n4js.xpect.ui.common.QuickFixTestHelper.separateOnCommaAndQuote) ValidationTestModuleSetup(org.eclipse.xpect.xtext.lib.tests.ValidationTestModuleSetup) Lists(com.google.common.collect.Lists) Config(org.eclipse.n4js.xpect.config.Config) Map(java.util.Map) ICompletionProposal(org.eclipse.jface.text.contentassist.ICompletionProposal) TemplateProposal(org.eclipse.jface.text.templates.TemplateProposal) ComparisonFailure(junit.framework.ComparisonFailure) XpectImport(org.eclipse.xpect.XpectImport) ParameterParser(org.eclipse.xpect.parameter.ParameterParser) ConsumedIssues(org.eclipse.xpect.xtext.lib.tests.ValidationTestModuleSetup.ConsumedIssues) CommaSeparatedValuesExpectation(org.eclipse.xpect.expectation.CommaSeparatedValuesExpectation) XtextResource(org.eclipse.xtext.resource.XtextResource) N4JSOffsetAdapter(org.eclipse.n4js.xpect.common.N4JSOffsetAdapter) QuickFixTestHelper.asString2(org.eclipse.n4js.xpect.ui.common.QuickFixTestHelper.asString2) Severity(org.eclipse.xtext.diagnostics.Severity) AbstractExpectation(org.eclipse.xpect.expectation.impl.AbstractExpectation) ExpectationCollection(org.eclipse.xpect.expectation.impl.ExpectationCollection) AssertionFailedError(junit.framework.AssertionFailedError) Display(org.eclipse.swt.widgets.Display) Collectors(java.util.stream.Collectors) ChangeInfo(org.eclipse.n4js.xpect.ui.common.QuickFixTestHelper.ChangeInfo) IteratorExtensions(org.eclipse.xtext.xbase.lib.IteratorExtensions) List(java.util.List) XpEnvironmentData(org.eclipse.n4js.xpect.config.XpEnvironmentData) Predicate(com.google.common.base.Predicate) CommaSeparatedValuesExpectationImpl(org.eclipse.xpect.expectation.impl.CommaSeparatedValuesExpectationImpl) Entry(java.util.Map.Entry) Optional(java.util.Optional) IXtextDocument(org.eclipse.xtext.ui.editor.model.IXtextDocument) Pair(org.eclipse.xtext.xbase.lib.Pair) Comparator(java.util.Comparator) IStringExpectation(org.eclipse.xpect.expectation.IStringExpectation) Xpect(org.eclipse.xpect.runner.Xpect) HashMap(java.util.HashMap) CommaSeparatedValuesExpectationImpl(org.eclipse.xpect.expectation.impl.CommaSeparatedValuesExpectationImpl) Point(org.eclipse.swt.graphics.Point) Entry(java.util.Map.Entry)

Aggregations

Predicate (com.google.common.base.Predicate)1 Lists (com.google.common.collect.Lists)1 Inject (com.google.inject.Inject)1 Arrays (java.util.Arrays)1 Comparator (java.util.Comparator)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Entry (java.util.Map.Entry)1 Optional (java.util.Optional)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 Collectors (java.util.stream.Collectors)1 AssertionFailedError (junit.framework.AssertionFailedError)1 ComparisonFailure (junit.framework.ComparisonFailure)1 Logger (org.apache.log4j.Logger)1 ICompletionProposal (org.eclipse.jface.text.contentassist.ICompletionProposal)1 TemplateProposal (org.eclipse.jface.text.templates.TemplateProposal)1 N4JSOffsetAdapter (org.eclipse.n4js.xpect.common.N4JSOffsetAdapter)1 Config (org.eclipse.n4js.xpect.config.Config)1 VarDef (org.eclipse.n4js.xpect.config.VarDef)1