KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > jtrac > domain > MetadataTest


1 package info.jtrac.domain;
2 import java.util.Collections JavaDoc;
3 import java.util.HashSet JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.Map JavaDoc;
6
7 import java.util.Set JavaDoc;
8 import junit.framework.TestCase;
9
10 public class MetadataTest extends TestCase {
11     
12     private Metadata getMetadata() {
13         Metadata metadata = new Metadata();
14         String JavaDoc 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 JavaDoc<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 JavaDoc 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 JavaDoc<Field.Name, Field> fields = m2.getFields();
49         assertEquals(fields.size(), 4);
50         Set JavaDoc<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"); // should now be editable when status is open
76
// query for editable fields for DEFAULT role and when status is OPEN
77
List JavaDoc<Field> fields = m.getEditableFields(Collections.singletonList("DEFAULT"), Collections.singletonList(State.OPEN));
78         assertEquals(1, fields.size());
79     }
80     
81 }
82
Popular Tags