package com.aptana.ide.metadata;
import java.util.Hashtable;
import junit.framework.TestCase;
public class MetadataRuntimeEnvironmentTest extends TestCase {
public void testAddEnvironment() {
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
MetadataEnvironment e1 = new MetadataEnvironment();
MetadataEnvironment e2 = new MetadataEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
assertEquals(2, mr1.getEnvironments().length);
}
public void testRemoveEnvironment() {
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
MetadataEnvironment e1 = new MetadataEnvironment();
MetadataEnvironment e2 = new MetadataEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
assertEquals(2, mr1.getEnvironments().length);
mr1.removeEnvironment(e2);
assertEquals(1, mr1.getEnvironments().length);
}
public void testGetAllElements()
{
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
MetadataEnvironment e1 = new MetadataEnvironment();
MetadataEnvironment e2 = new MetadataEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
ElementMetadata m1 = new ElementMetadata();
m1.setName("script");
m1.setDescription("description");
e1.addElement(m1);
ElementMetadata m2 = new ElementMetadata();
m2.setName("body");
m2.setDescription("description");
e2.addElement(m2);
String[] em1 = mr1.getAllElements();
assertEquals(2, em1.length);
}
public void testGetGlobalFields()
{
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
MetadataEnvironment e1 = new MetadataEnvironment();
MetadataEnvironment e2 = new MetadataEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
Hashtable<String, FieldMetadata> h1 = new Hashtable<String, FieldMetadata>();
FieldMetadata m1 = new FieldMetadata();
m1.setName("src");
m1.setDescription("description");
h1.put("src", m1);
e1.setGlobalFields(h1);
Hashtable<String, FieldMetadata> h2 = new Hashtable<String, FieldMetadata>();
FieldMetadata m2 = new FieldMetadata();
m2.setName("src");
m2.setDescription("description1");
h2.put("src", m2);
FieldMetadata m3 = new FieldMetadata();
m3.setName("id");
m3.setDescription("description");
h2.put("id", m3);
e2.setGlobalFields(h2);
Hashtable em1 = mr1.getGlobalFields();
assertEquals(2, em1.size());
FieldMetadata fm = (FieldMetadata)em1.get("src");
assertEquals("description description1", fm.getDescription());
}
public void testGetGlobalEvents() {
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
MetadataEnvironment e1 = new MetadataEnvironment();
MetadataEnvironment e2 = new MetadataEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
Hashtable<String, EventMetadata> h1 = new Hashtable<String, EventMetadata>();
EventMetadata m1 = new EventMetadata();
m1.setName("src");
m1.setDescription("description");
h1.put("src", m1);
e1.setGlobalEvents(h1);
Hashtable<String, EventMetadata> h2 = new Hashtable<String, EventMetadata>();
EventMetadata m2 = new EventMetadata();
m2.setName("src");
m2.setDescription("description1");
h2.put("src", m2);
EventMetadata m3 = new EventMetadata();
m3.setName("id");
m3.setDescription("description");
h2.put("id", m3);
e2.setGlobalEvents(h2);
Hashtable em1 = mr1.getGlobalEvents();
assertEquals(2, em1.size());
EventMetadata fm = (EventMetadata)em1.get("src");
assertEquals("description description1", fm.getDescription());
}
public void testGetElementString() {
ElementMetadata m1 = new ElementMetadata();
m1.setName("script");
m1.setDescription("description");
FieldMetadata fm = new FieldMetadata();
fm.setName("src");
m1.addField(fm);
MetadataEnvironment e1 = new MetadataEnvironment();
e1.addElement(m1);
ElementMetadata m2 = new ElementMetadata();
m2.setName("script");
m2.setDescription("override description");
FieldMetadata fm2 = new FieldMetadata();
fm2.setName("runat");
m2.addField(fm2);
EventMetadata em2 = new EventMetadata();
em2.setName("onRunat");
m2.addEvent(em2);
MetadataEnvironment e2 = new MetadataEnvironment();
e2.addElement(m2);
MetadataRuntimeEnvironment mr1 = new MetadataRuntimeEnvironment();
mr1.addEnvironment(e1);
mr1.addEnvironment(e2);
ElementMetadata script = mr1.getElement("script");
assertEquals("script", script.getName());
assertEquals("description override description", script.getDescription());
assertEquals(2, script.getFields().size());
assertEquals(1, script.getEvents().size());
}
// public void testGetMergedElement() {
// fail("Not yet implemented");
// }
//
// public void testGetElementLexeme() {
// fail("Not yet implemented");
// }
}