View Javadoc
1   package org.itracker.model;
2   
3   import org.itracker.AbstractDependencyInjectionTest;
4   import org.itracker.IssueException;
5   import org.itracker.core.resources.ITrackerResources;
6   import org.junit.Test;
7   
8   import java.text.ParseException;
9   import java.text.SimpleDateFormat;
10  import java.util.Date;
11  import java.util.Locale;
12  
13  // TODO makit unit-test?
14  public class IssueFieldIT extends AbstractDependencyInjectionTest {
15      private IssueField iss;
16  
17      @Test
18      public void testSetIssue() {
19          try {
20              iss.setIssue(null);
21              fail("did not throw IllegalArgumentException");
22          } catch (IllegalArgumentException e) {
23              assertTrue(true);
24          }
25      }
26  
27      @Test
28      public void testSetCustomField() {
29          try {
30              iss.setCustomField(null);
31              fail("did not throw IllegalArgumentException");
32          } catch (IllegalArgumentException e) {
33              assertTrue(true);
34          }
35      }
36  
37      @Test
38      public void testGetDateValue() {
39          Date date = new Date(100000000);
40          iss.setDateValue(date);
41          assertEquals("date value", date, iss.getDateValue());
42  
43          date = null;
44          iss.setDateValue(date);
45          assertNull("date value is null", iss.getDateValue());
46      }
47  
48      @Test
49      public void testSetDateValue() {
50          Date date = new Date(100000000);
51          iss.setDateValue(date);
52          assertEquals("date value", date, iss.getDateValue());
53  
54          date = null;
55          iss.setDateValue(date);
56          assertNull("date value is null", iss.getDateValue());
57      }
58  
59      @Test
60      public void testGetValue() {
61          Locale en = new Locale("en");
62          CustomField cust = new CustomField();
63          cust.setFieldType(CustomField.Type.INTEGER);
64          iss.setCustomField(cust);
65          iss.setIntValue(23);
66          assertEquals("int value 23", "23", iss.getValue(en));
67  
68          cust.setFieldType(CustomField.Type.DATE);
69          cust.setDateFormat(CustomField.DateFormat.DATE.code);
70          SimpleDateFormat sdf =
71                  new SimpleDateFormat(ITrackerResources.getBundle(en)
72                          .getString("itracker.dateformat."
73                                  + cust.getDateFormat()), en);
74  
75          final Date date = new Date(10000);
76          final String dateString = sdf.format(date);
77  
78          iss.setDateValue(date);
79          assertEquals("date value", dateString, iss.getValue(en));
80  
81          cust.setRequired(false);
82          iss.setDateValue(null);
83          assertNull("date value is null", iss.getValue(en));
84  
85          cust.setRequired(true);
86          iss.setDateValue(null);
87          assertNotNull("date value is not null", iss.getValue(en));
88  
89      }
90  
91      @Test
92      public void testGetStringValue() {
93          CustomField cust = new CustomField();
94          iss.setCustomField(cust);
95          iss.setStringValue(null);
96          cust.setFieldType(CustomField.Type.STRING);
97          assertNull("iss.stringValue", iss.getStringValue());
98  
99          cust.setFieldType(CustomField.Type.STRING);
100         iss.setCustomField(cust);
101         iss.setStringValue("value");
102         assertEquals("iss.stringValue", "value", iss.getStringValue());
103     }
104 
105     @Test
106     public void testSetValue() {
107         //test type is integer
108         Locale en = new Locale("en");
109         CustomField cust = new CustomField();
110         cust.setFieldType(CustomField.Type.INTEGER);
111         iss.setCustomField(cust);
112         try {
113             iss.setValue("23", ITrackerResources.getBundle(en));
114         } catch (IssueException e) {
115             fail("throw IssueException" + e);
116         }
117         assertTrue("23".equals(iss.getValue(en)));
118 
119         //test wrong number
120         try {
121             iss.setValue("ww", ITrackerResources.getBundle(en));
122         } catch (IssueException e) {
123             assertTrue(true);
124         }
125 
126         //test type is date
127         cust.setFieldType(CustomField.Type.DATE);
128         cust.setDateFormat(CustomField.DateFormat.DATE.code);
129         SimpleDateFormat sdf =
130                 new SimpleDateFormat(ITrackerResources.getBundle(en)
131                         .getString("itracker.dateformat."
132                                 + cust.getDateFormat()), en);
133 
134         final String dateString = sdf.format(new Date(0));
135 
136         try {
137             iss.setValue(dateString, ITrackerResources.getBundle(en));
138         } catch (IssueException e) {
139             fail("throw IssueException" + e);
140         }
141         try {
142             assertEquals("date value", sdf.parseObject(dateString), iss.getDateValue());
143         } catch (ParseException e) {
144             fail("throw ParseException" + e);
145         }
146         //test wrong date
147         try {
148             iss.setValue("xxxx" + dateString, ITrackerResources.getBundle(en));
149         } catch (Exception e) {
150             assertTrue(true);
151         }
152 
153 
154         //test value is empty
155         try {
156             iss.setValue(null, ITrackerResources.getBundle(en));
157             assertEquals("", iss.getStringValue());
158             assertNull(iss.getDateValue());
159             assertEquals(Integer.valueOf(0), iss.getIntValue());
160         } catch (IssueException e) {
161             fail("throw IssueException" + e);
162         }
163     }
164 
165     @Test
166     //test for method setValue(String value, ResourceBundle bundle)
167     public void testSetValueByResourceBundle() throws IssueException {
168         Locale en = new Locale("en");
169         CustomField cust = new CustomField();
170         cust.setFieldType(CustomField.Type.INTEGER);
171         iss.setCustomField(cust);
172         iss.setValue("23", ITrackerResources.getBundle(en));
173         assertTrue("23".equals(iss.getValue(en)));
174     }
175 
176 
177     @Test
178     public void testToString() {
179         assertNotNull("toString", iss.toString());
180     }
181 
182     @Override
183     public void onSetUp() throws Exception {
184         super.onSetUp();
185         iss = new IssueField();
186     }
187 
188     @Override
189     protected String[] getDataSetFiles() {
190         return new String[]{
191                 "dataset/languagebean_dataset.xml"
192         };
193     }
194 
195     @Override
196     protected String[] getConfigLocations() {
197         return new String[]{"application-context.xml"};
198     }
199 
200 }