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
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
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
120 try {
121 iss.setValue("ww", ITrackerResources.getBundle(en));
122 } catch (IssueException e) {
123 assertTrue(true);
124 }
125
126
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
147 try {
148 iss.setValue("xxxx" + dateString, ITrackerResources.getBundle(en));
149 } catch (Exception e) {
150 assertTrue(true);
151 }
152
153
154
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
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 }