1   // Copyright 2006, by the California Institute of 
2   // Technology. ALL RIGHTS RESERVED. United States Government 
3   // Sponsorship acknowledged. Any commercial use must be negotiated with 
4   // the Office of Technology Transfer at the California Institute of 
5   // Technology.
6   //
7   // This software may be subject to U.S. export control laws. By 
8   // accepting this software, the user agrees to comply with all 
9   // applicable U.S. export laws and regulations. User has the 
10  // responsibility to obtain export licenses, or other export authority 
11  // as may be required before exporting such information to foreign 
12  // countries or providing access to foreign persons.
13  //
14  // $Id: ObjectDefinitionTest.java 2945 2007-09-27 20:40:31Z pramirez $ 
15  //
16  
17  package gov.nasa.pds.tools.dict;
18  
19  import gov.nasa.pds.tools.dict.ObjectDefinition;
20  
21  import java.util.ArrayList;
22  import java.util.List;
23  
24  import junit.framework.*;
25  
26  /***
27   * @author pramirez
28   * @version $Revision$
29   * 
30   */
31  public class ObjectDefinitionTest extends TestCase {
32      
33      public ObjectDefinitionTest(String name) {
34          super(name);
35      }
36      
37      public void testCtor() {
38          ObjectDefinition definition = new ObjectDefinition("TABLE");
39          
40          assertEquals("TABLE", definition.getIdentifier());
41          assertEquals("", definition.getDescription());
42          assertEquals("PROPOSED", definition.getStatusType());
43          assertEquals(0, definition.getAliases().size());
44          assertEquals(0, definition.getRequiredElements().size());
45          assertEquals(0, definition.getOptionalElements().size());
46          assertEquals(0, definition.getRequiredObjects().size());
47          assertEquals(0, definition.getOptionalObjects().size());
48      }
49      
50      public void testSetters() {
51          ObjectDefinition definition = new ObjectDefinition("TABLE");
52          
53          assertEquals("TABLE", definition.getIdentifier());
54          definition.setIdentifier("IMAGE");
55          assertEquals("IMAGE", definition.getIdentifier());
56          
57          assertEquals("", definition.getDescription());
58          definition.setDescription("description");
59          assertEquals("description", definition.getDescription());
60          
61          assertEquals("PROPOSED", definition.getStatusType());
62          definition.setStatusType("APPROVED");
63          assertEquals("APPROVED", definition.getStatusType());
64          
65          assertEquals(0, definition.getAliases().size());
66          List aliases = new ArrayList();
67          aliases.add("XYZ_IMAGE");
68          definition.setAliases(aliases);
69          assertEquals("XYZ_IMAGE", definition.getAliases().get(0));
70          
71          assertEquals(0, definition.getRequiredElements().size());
72          List required = new ArrayList();
73          required.add("TARGET_NAME");
74          definition.setRequiredElements(required);
75          assertEquals("TARGET_NAME", definition.getRequiredElements().get(0));
76          
77          assertEquals(0, definition.getOptionalElements().size());
78          List optional = new ArrayList();
79          optional.add("MISSION_NAME");
80          definition.setOptionalElements(optional);
81          assertEquals("MISSION_NAME", definition.getOptionalElements().get(0));
82          
83          assertEquals(0, definition.getRequiredObjects().size());
84          definition.setRequiredObjects(required);
85          assertEquals("TARGET_NAME", definition.getRequiredObjects().get(0));
86          
87          assertEquals(0, definition.getOptionalObjects().size());
88          definition.setOptionalObjects(optional);
89          assertEquals("MISSION_NAME", definition.getOptionalElements().get(0));
90      }
91      
92      public void testObjectMethods() {
93          ObjectDefinition definition = new ObjectDefinition("IMAGE");
94          
95          assertEquals(0, definition.getAliases().size());
96          definition.addAlias(new Alias("XYZ_IMAGE"));
97          assertEquals("XYZ_IMAGE", definition.getAliases().get(0).toString());
98          
99          assertEquals(0, definition.getRequiredElements().size());
100         List required = new ArrayList();
101         required.add("TARGET_NAME");
102         definition.setRequiredElements(required);
103         assertTrue(definition.isElementRequired("TARGET_NAME"));
104         assertTrue(definition.isElementPossible("TARGET_NAME"));
105         assertTrue(!definition.isElementRequired("BLAH"));
106         assertTrue(!definition.isElementPossible("BLAH"));
107         
108         assertEquals(0, definition.getOptionalElements().size());
109         List optional = new ArrayList();
110         optional.add("MISSION_NAME");
111         definition.setOptionalElements(optional);
112         assertTrue(definition.isElementOptional("MISSION_NAME"));
113         assertTrue(!definition.isElementRequired("MISSION_NAME"));
114         
115         assertEquals(0, definition.getRequiredObjects().size());
116         definition.setRequiredObjects(required);
117         assertTrue(definition.isObjectRequired("TARGET_NAME"));
118         assertTrue(definition.isObjectPossible("TARGET_NAME"));
119         assertTrue(!definition.isObjectRequired("BLAH"));
120         assertTrue(!definition.isObjectPossible("BLAH"));
121         
122         assertEquals(0, definition.getOptionalObjects().size());
123         definition.setOptionalObjects(optional);
124         assertTrue(definition.isObjectOptional("MISSION_NAME"));
125         assertTrue(!definition.isObjectRequired("MISSION_NAME"));
126     }
127 
128 }