package net.jangaroo.exml.test;
import net.jangaroo.exml.model.ConfigClass;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Test;
import java.io.File;
import static org.junit.Assert.assertNull;
/**
*
*/
public class ConfigClassRegistryTest extends AbstractExmlTest {
@Test
public void testScanInitially() throws Exception {
setUp("testNamespace.config");
ConfigClass configClass = getConfigClassRegistry().getConfigClassByName("testNamespace.config.testLabel");
Assert.assertNotNull(configClass);
Assert.assertEquals("testNamespace.config", configClass.getPackageName());
Assert.assertEquals("testPackage.TestLabel", configClass.getComponentClassName());
ConfigClass labelConfigClass = getConfigClassRegistry().getConfigClassByName("ext.config.label");
Assert.assertNotNull(labelConfigClass);
Assert.assertEquals("ext.config.label", labelConfigClass.getFullName());
Assert.assertEquals(labelConfigClass, configClass.getSuperClass());
Assert.assertEquals(1, configClass.getCfgs().size());
}
@Test
public void testGenerateFromExml() throws Exception {
setUp("testNamespace.config");
ConfigClass configClass = getConfigClassRegistry().getConfigClassByName("testNamespace.config.testLabel");
Assert.assertNotNull(configClass);
Assert.assertEquals("testNamespace.config", configClass.getPackageName());
Assert.assertEquals("testPackage.TestLabel", configClass.getComponentClassName());
Assert.assertEquals(1, configClass.getCfgs().size());
// 2nd try should return the same object
Assert.assertEquals(configClass, getConfigClassRegistry().getConfigClassByName("testNamespace.config.testLabel"));
}
@Test
public void testGenerateFromExmlWithPregeneratedActionScript() throws Exception {
setUp("testNamespace.config", "/expected", "/ext-as");
File destDir = new File(outputFolder.getRoot(), "testNamespace/config");
destDir.mkdirs();
FileUtils.copyFileToDirectory(new File(getConfigClassRegistry().getConfig().getSourcePath().get(0), "testNamespace/config/testComponent.as"),
destDir);
ConfigClass configClass = getConfigClassRegistry().getConfigClassByName("testNamespace.config.testComponent");
Assert.assertNotNull(configClass);
Assert.assertEquals("testNamespace.config", configClass.getPackageName());
Assert.assertEquals("testPackage.TestComponent", configClass.getComponentClassName());
Assert.assertEquals(14, configClass.getCfgs().size());
// 2nd try should return the same object
Assert.assertEquals(configClass, getConfigClassRegistry().getConfigClassByName("testNamespace.config.testComponent"));
}
@Test
public void testGenerateFromLocalActionScript() throws Exception {
setUp("somewhere.else.config", "/expected", "/ext-as");
ConfigClass configClass = getConfigClassRegistry().getConfigClassByName("testNamespace.config.testComponent");
Assert.assertNotNull(configClass);
Assert.assertEquals("testNamespace.config", configClass.getPackageName());
Assert.assertEquals("testPackage.TestComponent", configClass.getComponentClassName());
Assert.assertEquals(14, configClass.getCfgs().size());
}
@Test
public void testGenerateFromClassPathActionScript() throws Exception {
setUp("somewhere.else.config", "/expected", "/ext-as");
ConfigClass configClass = getConfigClassRegistry().getConfigClassByName("testNamespace.config.testComponent");
Assert.assertNotNull(configClass);
Assert.assertEquals("testNamespace.config", configClass.getPackageName());
Assert.assertEquals("testPackage.TestComponent", configClass.getComponentClassName());
Assert.assertEquals(14, configClass.getCfgs().size());
}
@Test
public void testDoesNotExist() throws Exception {
setUp("testNamespace.config");
assertNull(getConfigClassRegistry().getConfigClassByName("does.not.Exist"));
}
}