package com.github.jknack.antlr4ide.launch; import com.github.jknack.antlr4ide.ui.launch.VariableButtonListener; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.variables.IStringVariableManager; import org.eclipse.core.variables.IValueVariable; import org.eclipse.core.variables.VariablesPlugin; import org.eclipse.xtext.junit4.XtextRunner; import org.junit.Assert; import org.junit.runner.RunWith; import org.junit.Test; @RunWith(XtextRunner.class) public class VariableButtonListenerTest { @Test public void testVariableSubstitution() throws CoreException { final IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); final IValueVariable var1 = manager.newValueVariable("my", "", false, "MyTestProject"); final IValueVariable var2 = manager.newValueVariable("hello", "hello world!", false, "Hello"); final IValueVariable var3 = manager.newValueVariable("ext", "", true, "g4"); final IValueVariable[] vars = new IValueVariable[] {var1, var2, var3}; manager.addVariables(vars); final String path = "/${my}/${hello}.${ext}"; final String actual = VariableButtonListener.substituteVariables(path); final String expected = "/MyTestProject/Hello.g4"; Assert.assertEquals(expected, actual); } }