1 package info.jtrac.domain; 2 import java.util.Collections ; 3 import java.util.HashSet ; 4 import java.util.List ; 5 import java.util.Map ; 6 7 import java.util.Set ; 8 import junit.framework.TestCase; 9 10 public class MetadataTest extends TestCase { 11 12 private Metadata getMetadata() { 13 Metadata metadata = new Metadata(); 14 String xmlString = "<metadata><fields>" 15 + "<field name='cusInt01' label='Test Label'/>" 16 + "<field name='cusInt02' label='Test Label 2'/>" 17 + "</fields></metadata>"; 18 metadata.setXmlString(xmlString); 19 return metadata; 20 } 21 22 public void testGetFieldByName() { 23 Metadata m = getMetadata(); 24 Field f = m.getField("cusInt01"); 25 assertEquals("Test Label", f.getLabel()); 26 } 27 28 public void testGetFieldsFromXml() { 29 Metadata m = getMetadata(); 30 Map <Field.Name, Field> fields = m.getFields(); 31 assertTrue(fields.size() == 2); 32 Field[] fa = fields.values().toArray(new Field[0]); 33 assertEquals("cusInt01", fa[0].getName() + ""); 34 assertEquals("Test Label", fa[0].getLabel()); 35 assertEquals("cusInt02", fa[1].getName() + ""); 36 assertEquals("Test Label 2", fa[1].getLabel()); 37 } 38 39 public void testMetadataInheritance() { 40 Metadata m1 = getMetadata(); 41 Metadata m2 = new Metadata(); 42 String xmlString = "<metadata><fields>" 43 + "<field name='cusInt03' label='Test Label 3'/>" 44 + "<field name='cusInt04' label='Test Label 4'/>" 45 + "</fields></metadata>"; 46 m2.setXmlString(xmlString); 47 m2.setParent(m1); 48 Map <Field.Name, Field> fields = m2.getFields(); 49 assertEquals(fields.size(), 4); 50 Set <Field.Name> names = m2.getUnusedFieldNames(); 51 assertEquals(names.contains(Field.Name.CUS_INT_01), false); 52 assertEquals(names.contains(Field.Name.CUS_INT_04), false); 53 assertEquals(names.size(), Field.Name.values().length - 4); 54 } 55 56 public void testInitRolesThenAddRolesAndStates() { 57 Metadata m = new Metadata(); 58 m.initRoles(); 59 assertEquals("New, Open and Closed available by default", 3, m.getStateCount()); 60 assertEquals("DEFAULT available by default", 1, m.getRoleCount()); 61 Field f = new Field(Field.Name.CUS_INT_01); 62 m.add(f); 63 assertEquals(1, m.getFieldCount()); 64 assertEquals("New", m.getStatusValue(0)); 65 assertEquals("Open", m.getStatusValue(1)); 66 assertEquals("Closed", m.getStatusValue(99)); 67 assertEquals("", m.getStatusValue(50)); 68 } 69 70 public void testGetEditableFields() { 71 Metadata m = new Metadata(); 72 m.initRoles(); 73 Field f = new Field(Field.Name.CUS_STR_01); 74 m.add(f); 75 m.switchMask(State.OPEN, "DEFAULT", "cusStr01"); List <Field> fields = m.getEditableFields(Collections.singletonList("DEFAULT"), Collections.singletonList(State.OPEN)); 78 assertEquals(1, fields.size()); 79 } 80 81 } 82 | Popular Tags |