package org.eclipse.dltk.tcl.validators.tests.packages;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestCase;
import org.eclipse.dltk.core.tests.model.AbstractModelTests;
import org.eclipse.dltk.tcl.ast.TclCommand;
import org.eclipse.dltk.tcl.core.TclNature;
import org.eclipse.dltk.tcl.core.packages.TclModuleInfo;
import org.eclipse.dltk.tcl.indexing.PackageSourceCollector;
import org.eclipse.dltk.tcl.parser.TclParser;
import org.eclipse.dltk.tcl.parser.definitions.DefinitionManager;
import org.eclipse.dltk.tcl.parser.tests.TestUtils;
public class TclSourcePackagesTests extends AbstractModelTests {
public TclSourcePackagesTests(String name) {
super("org.eclipse.dltk.tcl.core.tests", name);
}
public TclSourcePackagesTests(String testProjectName, String name) {
super(testProjectName, name);
}
public static Test suite() {
return new Suite(TclSourcePackagesTests.class);
}
protected String getNatureId() {
return TclNature.NATURE_ID;
}
public void testSource001() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("source ../alfa.tcl", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getSourced().size());
TestCase.assertEquals("../alfa.tcl", info.getSourced().get(0)
.getValue());
}
public void testSource002() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("source \"../alfa.tcl\"", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getSourced().size());
TestCase.assertEquals("../alfa.tcl", info.getSourced().get(0)
.getValue());
}
public void testSource003() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("source {../alfa.tcl}", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getSourced().size());
TestCase.assertEquals("../alfa.tcl", info.getSourced().get(0)
.getValue());
}
public void testSource004() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("source $dir/alfa.tcl", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getSourced().size());
TestCase.assertEquals("$dir/alfa.tcl", info.getSourced().get(0)
.getValue());
}
public void testSource005() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("source [file join $dir alfa.tcl]", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getSourced().size());
TestCase.assertEquals("[file join $dir alfa.tcl]", info.getSourced().get(0)
.getValue());
}
public void testPackage001() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("package require alfa", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getRequired().size());
TestCase.assertEquals("alfa", info.getRequired().get(0).getValue());
}
public void testPackage002() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("package provide alfa", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getProvided().size());
TestCase.assertEquals("alfa", info.getProvided().get(0).getValue());
}
public void testPackage003() throws Throwable {
TclParser parser = TestUtils.createParser();
List<TclCommand> decls = parser.parse("package ifneeded alfa", null,
DefinitionManager.getInstance().createProcessor());
PackageSourceCollector collector = new PackageSourceCollector();
collector.process(decls, null);
TclModuleInfo info = collector.getCurrentModuleInfo();
TestCase.assertEquals(1, info.getProvided().size());
TestCase.assertEquals("alfa", info.getProvided().get(0).getValue());
}
}