package com.github.jknack.antlr4ide.generator; import static com.google.common.collect.Sets.newHashSet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.File; import org.eclipse.core.runtime.Path; import org.eclipse.xtext.xbase.lib.Pair; import org.junit.Test; public class DistributionsTest { @Test public void defaultDistribution() { File jar = new File(System.getProperty("java.io.tmpdir"), ToolOptionsProvider.DEFAULT_TOOL); Pair<String, String> distribution = Distributions.defaultDistribution(); assertNotNull(distribution); assertEquals(ToolOptionsProvider.VERSION, distribution.getKey()); assertEquals(jar.toString(), distribution.getValue()); } @Test public void goodDistribution() { File jar = Path.fromOSString("..").append("antlr4ide.core").append("lib") .append("antlr-" + ToolOptionsProvider.VERSION + "-complete.jar").toFile(); Pair<String, String> distribution = Distributions.get(jar); assertNotNull(distribution); assertEquals(ToolOptionsProvider.VERSION, distribution.getKey()); assertEquals(jar.getAbsolutePath(), distribution.getValue()); } @Test public void badDistribution() { File jar = Path.fromOSString("lib").append("junit-4.11.jar").toFile(); Pair<String, String> distribution = Distributions.get(jar); assertNotNull(distribution); assertEquals("", distribution.getKey()); assertEquals("", distribution.getValue()); } @SuppressWarnings("unchecked") @Test public void distributionToString() { assertEquals("4.1@/temp/antlr-4.1.jar", Distributions.toString(distro("4.1", "/temp/antlr-4.1.jar"))); assertEquals("4.1@/temp/antlr-4.1.jar:4.2@/temp/antlr-4.2.jar", Distributions.toString(distro("4.1", "/temp/antlr-4.1.jar"), distro("4.2", "/temp/antlr-4.2.jar"))); } @SuppressWarnings("unchecked") @Test public void distributionFromString() { assertEquals( newHashSet(distro("4.1", "/temp/antlr-4.1.jar")), Distributions.fromString("4.1@/temp/antlr-4.1.jar")); assertEquals( newHashSet( distro("4.1", "/temp/antlr-4.1.jar"), distro("4.2", "/temp/antlr-4.2.jar") ), Distributions.fromString("4.1@/temp/antlr-4.1.jar:4.2@/temp/antlr-4.2.jar")); } public Pair<String, String> distro(final String version, final String path) { return new Pair<String, String>(version, path); } }