Package fr.obeo.releng.targetplatform.tests

Source Code of fr.obeo.releng.targetplatform.tests.TestTargetPlatformIndexer

package fr.obeo.releng.targetplatform.tests;

import com.google.common.collect.ListMultimap;
import com.google.inject.Inject;
import com.google.inject.Provider;
import fr.obeo.releng.targetplatform.Location;
import fr.obeo.releng.targetplatform.TargetPlatform;
import fr.obeo.releng.targetplatform.TargetPlatformInjectorProvider;
import fr.obeo.releng.targetplatform.util.LocationIndexBuilder;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.eclipse.xtext.junit4.util.ParseHelper;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.eclipse.xtext.xbase.lib.CollectionLiterals;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.ListExtensions;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

@InjectWith(TargetPlatformInjectorProvider.class)
@RunWith(XtextRunner.class)
@SuppressWarnings("all")
public class TestTargetPlatformIndexer {
  @Inject
  private ParseHelper<TargetPlatform> parser;
 
  @Inject
  private Provider<XtextResourceSet> resourceSetProvider;
 
  @Inject
  private LocationIndexBuilder indexBuilder;
 
  @Test
  public void testIncludeOverrideOrder() {
    try {
      final XtextResourceSet resourceSet = this.resourceSetProvider.get();
      StringConcatenation _builder = new StringConcatenation();
      _builder.append("target \"o\" include \"a.tpd\" include \"b.tpd\" include \"c.tpd\"");
      URI _createURI = URI.createURI("tmp:/o.tpd");
      final TargetPlatform o = this.parser.parse(_builder, _createURI, resourceSet);
      StringConcatenation _builder_1 = new StringConcatenation();
      _builder_1.append("target \"a\" include \"d.tpd\" include \"e.tpd\" include \"f.tpd\"");
      URI _createURI_1 = URI.createURI("tmp:/a.tpd");
      this.parser.parse(_builder_1, _createURI_1, resourceSet);
      StringConcatenation _builder_2 = new StringConcatenation();
      _builder_2.append("target \"b\" include \"g.tpd\" include \"h.tpd\" include \"i.tpd\"");
      URI _createURI_2 = URI.createURI("tmp:/b.tpd");
      this.parser.parse(_builder_2, _createURI_2, resourceSet);
      StringConcatenation _builder_3 = new StringConcatenation();
      _builder_3.append("target \"c\" include \"j.tpd\" include \"k.tpd\" include \"l.tpd\"");
      URI _createURI_3 = URI.createURI("tmp:/c.tpd");
      this.parser.parse(_builder_3, _createURI_3, resourceSet);
      for (final String tp : Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("d", "e", "f", "g", "h", "i", "j", "k", "l"))) {
        StringConcatenation _builder_4 = new StringConcatenation();
        _builder_4.append("target \"");
        _builder_4.append(tp, "");
        _builder_4.append("\"");
        StringConcatenation _builder_5 = new StringConcatenation();
        _builder_5.append("tmp:/");
        _builder_5.append(tp, "");
        _builder_5.append(".tpd");
        URI _createURI_4 = URI.createURI(_builder_5.toString());
        this.parser.parse(_builder_4, _createURI_4, resourceSet);
      }
      LinkedList<TargetPlatform> _importedTargetPlatforms = this.indexBuilder.getImportedTargetPlatforms(o);
      final Function1<TargetPlatform, String> _function = new Function1<TargetPlatform, String>() {
        public String apply(final TargetPlatform it) {
          return it.getName();
        }
      };
      List<String> _map = ListExtensions.<TargetPlatform, String>map(_importedTargetPlatforms, _function);
      Assert.assertEquals(
        Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("c", "b", "a", "l", "k", "j", "i", "h", "g", "f", "e", "d")), _map);
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
 
  @Test
  public void testIncludeOverrideOrder2() {
    try {
      final XtextResourceSet resourceSet = this.resourceSetProvider.get();
      StringConcatenation _builder = new StringConcatenation();
      _builder.append("target \"o\" include \"a.tpd\" include \"b.tpd\" include \"c.tpd\"");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.append("location \"o1\"");
      _builder.newLine();
      URI _createURI = URI.createURI("tmp:/o.tpd");
      final TargetPlatform o = this.parser.parse(_builder, _createURI, resourceSet);
      StringConcatenation _builder_1 = new StringConcatenation();
      _builder_1.append("target \"a\" include \"d.tpd\" include \"e.tpd\" include \"f.tpd\"");
      _builder_1.newLine();
      _builder_1.append("\t\t");
      _builder_1.append("location \"a1\"");
      _builder_1.newLine();
      URI _createURI_1 = URI.createURI("tmp:/a.tpd");
      this.parser.parse(_builder_1, _createURI_1, resourceSet);
      StringConcatenation _builder_2 = new StringConcatenation();
      _builder_2.append("target \"b\" include \"g.tpd\" include \"h.tpd\" include \"i.tpd\"");
      _builder_2.newLine();
      _builder_2.append("\t\t");
      _builder_2.append("location \"b1\"");
      URI _createURI_2 = URI.createURI("tmp:/b.tpd");
      this.parser.parse(_builder_2, _createURI_2, resourceSet);
      StringConcatenation _builder_3 = new StringConcatenation();
      _builder_3.append("target \"c\" include \"j.tpd\" include \"k.tpd\" include \"l.tpd\"");
      _builder_3.newLine();
      _builder_3.append("\t\t");
      _builder_3.append("location \"c1\"");
      URI _createURI_3 = URI.createURI("tmp:/c.tpd");
      this.parser.parse(_builder_3, _createURI_3, resourceSet);
      for (final String tp : Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("d", "e", "f", "g", "h", "i", "j", "k", "l"))) {
        StringConcatenation _builder_4 = new StringConcatenation();
        _builder_4.append("target \"");
        _builder_4.append(tp, "");
        _builder_4.append("\"");
        _builder_4.newLineIfNotEmpty();
        _builder_4.append("\t\t\t");
        _builder_4.append("location \"");
        _builder_4.append(tp, "\t\t\t");
        _builder_4.append("1\"");
        StringConcatenation _builder_5 = new StringConcatenation();
        _builder_5.append("tmp:/");
        _builder_5.append(tp, "");
        _builder_5.append(".tpd");
        URI _createURI_4 = URI.createURI(_builder_5.toString());
        this.parser.parse(_builder_4, _createURI_4, resourceSet);
      }
      ListMultimap<String, Location> _locationIndex = this.indexBuilder.getLocationIndex(o);
      Set<String> _keySet = _locationIndex.keySet();
      Assert.assertArrayEquals(
        new Object[] { "o1", "c1", "l1", "k1", "j1", "b1", "i1", "h1", "g1", "a1", "f1", "e1", "d1" }, ((Object[])Conversions.unwrapArray(_keySet, Object.class)));
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
 
  @Test
  public void testIncludeOverrideOrder3() {
    try {
      final XtextResourceSet resourceSet = this.resourceSetProvider.get();
      StringConcatenation _builder = new StringConcatenation();
      _builder.append("target \"o\" ");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.append("include \"a.tpd\" ");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.append("include \"b.tpd\" ");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.append("location \"o1\"");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.append("include \"c.tpd\"");
      _builder.newLine();
      URI _createURI = URI.createURI("tmp:/o.tpd");
      final TargetPlatform o = this.parser.parse(_builder, _createURI, resourceSet);
      StringConcatenation _builder_1 = new StringConcatenation();
      _builder_1.append("target \"a\" ");
      _builder_1.newLine();
      _builder_1.append("\t\t");
      _builder_1.append("include \"d.tpd\" ");
      _builder_1.newLine();
      _builder_1.append("\t\t");
      _builder_1.append("location \"a1\"");
      _builder_1.newLine();
      _builder_1.append("\t\t");
      _builder_1.append("include \"e.tpd\" ");
      _builder_1.newLine();
      _builder_1.append("\t\t");
      _builder_1.append("include \"f.tpd\"");
      _builder_1.newLine();
      URI _createURI_1 = URI.createURI("tmp:/a.tpd");
      this.parser.parse(_builder_1, _createURI_1, resourceSet);
      StringConcatenation _builder_2 = new StringConcatenation();
      _builder_2.append("target \"b\" ");
      _builder_2.newLine();
      _builder_2.append("\t\t");
      _builder_2.append("location \"b1\"");
      _builder_2.newLine();
      _builder_2.append("\t\t");
      _builder_2.append("include \"g.tpd\" ");
      _builder_2.newLine();
      _builder_2.append("\t\t");
      _builder_2.append("include \"h.tpd\" ");
      _builder_2.newLine();
      _builder_2.append("\t\t");
      _builder_2.append("include \"i.tpd\"");
      URI _createURI_2 = URI.createURI("tmp:/b.tpd");
      this.parser.parse(_builder_2, _createURI_2, resourceSet);
      StringConcatenation _builder_3 = new StringConcatenation();
      _builder_3.append("target \"c\" ");
      _builder_3.newLine();
      _builder_3.append("\t\t");
      _builder_3.append("include \"j.tpd\" ");
      _builder_3.newLine();
      _builder_3.append("\t\t");
      _builder_3.append("include \"k.tpd\" ");
      _builder_3.newLine();
      _builder_3.append("\t\t");
      _builder_3.append("include \"l.tpd\"");
      _builder_3.newLine();
      _builder_3.append("\t\t");
      _builder_3.append("location \"c1\"");
      URI _createURI_3 = URI.createURI("tmp:/c.tpd");
      this.parser.parse(_builder_3, _createURI_3, resourceSet);
      for (final String tp : Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("d", "e", "f", "g", "h", "i", "j", "k", "l"))) {
        StringConcatenation _builder_4 = new StringConcatenation();
        _builder_4.append("target \"");
        _builder_4.append(tp, "");
        _builder_4.append("\"");
        _builder_4.newLineIfNotEmpty();
        _builder_4.append("\t\t\t");
        _builder_4.append("location \"");
        _builder_4.append(tp, "\t\t\t");
        _builder_4.append("1\"");
        StringConcatenation _builder_5 = new StringConcatenation();
        _builder_5.append("tmp:/");
        _builder_5.append(tp, "");
        _builder_5.append(".tpd");
        URI _createURI_4 = URI.createURI(_builder_5.toString());
        this.parser.parse(_builder_4, _createURI_4, resourceSet);
      }
      ListMultimap<String, Location> _locationIndex = this.indexBuilder.getLocationIndex(o);
      Set<String> _keySet = _locationIndex.keySet();
      Assert.assertArrayEquals(
        new Object[] { "c1", "l1", "k1", "j1", "o1", "i1", "h1", "g1", "b1", "f1", "e1", "a1", "d1" }, ((Object[])Conversions.unwrapArray(_keySet, Object.class)));
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
 
  @Test
  public void testRemoteInclude() {
    try {
      final XtextResourceSet resourceSet = this.resourceSetProvider.get();
      StringConcatenation _builder = new StringConcatenation();
      _builder.append("target \"o\" ");
      _builder.newLine();
      _builder.append("include \"http://git.eclipse.org/c/emfcompare/org.eclipse.emf.compare.git/plain/org.eclipse.emf.compare-parent/targetPlatforms/kepler-sdk.targetplatform?id=e9fbfd866f648083df83174d566ee1b9d61daeca\" ");
      _builder.newLine();
      URI _createURI = URI.createURI("tmp:/o.tpd");
      final TargetPlatform o = this.parser.parse(_builder, _createURI, resourceSet);
      final ListMultimap<String, Location> index = this.indexBuilder.getLocationIndex(o);
      int _size = index.size();
      Assert.assertEquals(4, _size);
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
}
TOP

Related Classes of fr.obeo.releng.targetplatform.tests.TestTargetPlatformIndexer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.