1   package gov.nasa.pds.ltdt.testLabel;
2   
3   import java.util.Arrays;
4   
5   import gov.nasa.pds.tools.dict.ElementDefinition;
6   import gov.nasa.pds.tools.dict.type.InvalidTypeException;
7   import gov.nasa.pds.tools.dict.type.Types;
8   import gov.nasa.pds.tools.dict.type.UnsupportedTypeException;
9   import junit.framework.*;
10  
11  public class ElementTestValueGeneratorTest extends TestCase implements Types {
12  	ElementDefinition charDef;
13  	ElementDefinition charDefwithMin;
14  	ElementDefinition charDefwithMax;
15  	ElementDefinition date;
16  	ElementDefinition time;
17  	ElementDefinition alphaNumeric;
18  	ElementDefinition identifier;
19  	ElementDefinition integer;
20  	ElementDefinition real;
21  	ElementDefinition contextDependent;
22  	
23  	public ElementTestValueGeneratorTest(String name) {
24  		super(name);
25  		setUpDefinitions();
26  	}
27  
28  	private void setUpDefinitions() {
29  		charDef = new ElementDefinition("CHAR_TEST");
30  		charDef.setDataType(CHARACTER);
31  		String[] values = {"VALID VALUE 1", "VALID VALUE 2", "VALID VALUE 3"};
32  		charDef.setValues(Arrays.asList(values));
33  		
34  		charDefwithMin = new ElementDefinition("CHAR_TEST_HASMIN");
35  		charDefwithMin.setDataType(CHARACTER);
36  		charDefwithMin.setMinLength(14);
37  		
38  		charDefwithMax = new ElementDefinition("CHAR_TEST_HASMAX");
39  		charDefwithMax.setDataType(CHARACTER);
40  		charDefwithMax.setMaxLength(3);
41  		
42  		alphaNumeric = new ElementDefinition("ALPHANUM_TEST");
43  		alphaNumeric.setDataType(ALPHANUMERIC);
44  		alphaNumeric.setMinLength(1);
45  		alphaNumeric.setMaxLength(30);
46  		
47  		identifier = new ElementDefinition("IDENTIFIER_TEST");
48  		identifier.setDataType(IDENTIFIER);
49  		identifier.setMaxLength(255);
50  		
51  		integer = new ElementDefinition("INTEGER_TEST");
52  		integer.setDataType(INTEGER);
53  		integer.setMinimum(Integer.valueOf("1"));
54  		integer.setMaximum(Integer.valueOf("32"));
55  		
56  		real = new ElementDefinition("REAL_TEST");
57  		real.setDataType(REAL);
58  		real.setMinimum(Integer.valueOf("2415000"));
59  		
60  		contextDependent = new ElementDefinition("CONTEXTDEPENDENT_TEST");
61  		contextDependent.setDataType(CONTEXTDEPENDENT);
62  	}
63  	
64  	public void testObjectMethods() throws InvalidTypeException, UnsupportedTypeException {
65  		//TODO: Need to test for TIME and DATE
66  		assertEquals("VALID VALUE 1", ElementTestValueGenerator.getValue(charDef));
67  		assertEquals("TEST STRINGABC", ElementTestValueGenerator.getValue(charDefwithMin));
68  		assertEquals("ABC", ElementTestValueGenerator.getValue(charDefwithMax));
69  		assertEquals("TEST123", ElementTestValueGenerator.getValue(alphaNumeric));
70  		assertEquals("TEST_STRING", ElementTestValueGenerator.getValue(identifier));
71  		assertEquals(Integer.valueOf("1"), ElementTestValueGenerator.getValue(integer));
72  		assertEquals(Double.valueOf("2415000"), ElementTestValueGenerator.getValue(real));
73  		assertEquals("\"NULL\"", ElementTestValueGenerator.getValue(contextDependent));
74  	}
75  
76  }