738 |
09 Jun 05 |
nicklas |
1 |
/* |
738 |
09 Jun 05 |
nicklas |
$Id$ |
738 |
09 Jun 05 |
nicklas |
3 |
|
3675 |
16 Aug 07 |
jari |
Copyright (C) 2005 Nicklas Nordborg |
4889 |
06 Apr 09 |
nicklas |
Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg |
3675 |
16 Aug 07 |
jari |
Copyright (C) 2007 Nicklas Nordborg |
738 |
09 Jun 05 |
nicklas |
7 |
|
2304 |
22 May 06 |
jari |
This file is part of BASE - BioArray Software Environment. |
2304 |
22 May 06 |
jari |
Available at http://base.thep.lu.se/ |
738 |
09 Jun 05 |
nicklas |
10 |
|
738 |
09 Jun 05 |
nicklas |
BASE is free software; you can redistribute it and/or |
738 |
09 Jun 05 |
nicklas |
modify it under the terms of the GNU General Public License |
4480 |
05 Sep 08 |
jari |
as published by the Free Software Foundation; either version 3 |
738 |
09 Jun 05 |
nicklas |
of the License, or (at your option) any later version. |
738 |
09 Jun 05 |
nicklas |
15 |
|
738 |
09 Jun 05 |
nicklas |
BASE is distributed in the hope that it will be useful, |
738 |
09 Jun 05 |
nicklas |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
738 |
09 Jun 05 |
nicklas |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
738 |
09 Jun 05 |
nicklas |
GNU General Public License for more details. |
738 |
09 Jun 05 |
nicklas |
20 |
|
738 |
09 Jun 05 |
nicklas |
You should have received a copy of the GNU General Public License |
4514 |
11 Sep 08 |
jari |
along with BASE. If not, see <http://www.gnu.org/licenses/>. |
738 |
09 Jun 05 |
nicklas |
23 |
*/ |
738 |
09 Jun 05 |
nicklas |
24 |
|
738 |
09 Jun 05 |
nicklas |
25 |
import java.util.Date; |
5340 |
10 May 10 |
nicklas |
26 |
import java.util.Set; |
738 |
09 Jun 05 |
nicklas |
27 |
|
738 |
09 Jun 05 |
nicklas |
28 |
import net.sf.basedb.core.*; |
7099 |
07 Mar 16 |
nicklas |
29 |
import net.sf.basedb.core.query.Expressions; |
7099 |
07 Mar 16 |
nicklas |
30 |
import net.sf.basedb.core.query.Hql; |
7099 |
07 Mar 16 |
nicklas |
31 |
import net.sf.basedb.core.query.Restrictions; |
7099 |
07 Mar 16 |
nicklas |
32 |
|
855 |
01 Jul 05 |
nicklas |
33 |
import java.util.Arrays; |
738 |
09 Jun 05 |
nicklas |
34 |
|
738 |
09 Jun 05 |
nicklas |
35 |
public class TestAnnotationType |
738 |
09 Jun 05 |
nicklas |
36 |
{ |
738 |
09 Jun 05 |
nicklas |
37 |
static boolean ok = true; |
738 |
09 Jun 05 |
nicklas |
38 |
|
738 |
09 Jun 05 |
nicklas |
39 |
public static void main(String[] args) |
738 |
09 Jun 05 |
nicklas |
40 |
{ |
738 |
09 Jun 05 |
nicklas |
41 |
TestUtil.checkArgs(args); |
738 |
09 Jun 05 |
nicklas |
42 |
TestUtil.begin(); |
738 |
09 Jun 05 |
nicklas |
43 |
ok = test_all(); |
738 |
09 Jun 05 |
nicklas |
44 |
TestUtil.stop(); |
738 |
09 Jun 05 |
nicklas |
45 |
} |
738 |
09 Jun 05 |
nicklas |
46 |
|
738 |
09 Jun 05 |
nicklas |
47 |
static boolean test_all() |
738 |
09 Jun 05 |
nicklas |
48 |
{ |
738 |
09 Jun 05 |
nicklas |
49 |
write("++Testing annotation types"); |
738 |
09 Jun 05 |
nicklas |
50 |
write_header(); |
4544 |
25 Sep 08 |
nicklas |
51 |
|
4544 |
25 Sep 08 |
nicklas |
52 |
int celsiusId = TestUnit.test_load_by_symbol(SystemItems.getId(Quantity.TEMPERATURE), "C"); |
4544 |
25 Sep 08 |
nicklas |
53 |
int meterId = TestUnit.test_load_by_symbol(SystemItems.getId(Quantity.LENGTH), "m"); |
4544 |
25 Sep 08 |
nicklas |
54 |
|
738 |
09 Jun 05 |
nicklas |
// Standard tests: create, load, list |
4544 |
25 Sep 08 |
nicklas |
56 |
int id_int = test_create(null, Type.INT, 0, 10, null, Item.SAMPLE, 1, null, true); |
4544 |
25 Sep 08 |
nicklas |
57 |
int id_long = test_create(null, Type.LONG, 0, 123456789123456l, null, Item.SAMPLE, 1, null, true); |
4544 |
25 Sep 08 |
nicklas |
58 |
int id_float = test_create("Temperature", Type.FLOAT, celsiusId, 10.1, null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
59 |
int id_double = test_create("Size", Type.DOUBLE, meterId, 8.13459187745, null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
60 |
int id_date = test_create(null, Type.DATE, 0, new Date(), null, Item.SAMPLE, 1, null, false); |
5422 |
22 Sep 10 |
nicklas |
61 |
int id_timestamp = test_create(null, Type.TIMESTAMP, 0, new Date(), null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
62 |
int id_text = test_create(null, Type.TEXT, 0, "default value", null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
63 |
int id_string = test_create(null, Type.STRING, 0, "default value", null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
64 |
int id_boolean = test_create(null, Type.BOOLEAN, 0, true, null, Item.SAMPLE, 1, null, false); |
4544 |
25 Sep 08 |
nicklas |
65 |
int id_enum = test_create(null, Type.INT, 0, 3, null, Item.SAMPLE, 1, new Object[] { 1, 2, 3, 4, 5 }, false); |
4544 |
25 Sep 08 |
nicklas |
66 |
int id2_enum = test_create(null, Type.STRING, 0, "one", null, Item.SAMPLE, 1, new String[] { "one", "two ", "three" }, false); |
738 |
09 Jun 05 |
nicklas |
67 |
test_load(id_int); |
936 |
14 Jul 05 |
nicklas |
68 |
test_load(id_long); |
738 |
09 Jun 05 |
nicklas |
69 |
test_load(id_float); |
936 |
14 Jul 05 |
nicklas |
70 |
test_load(id_double); |
738 |
09 Jun 05 |
nicklas |
71 |
test_load(id_date); |
5422 |
22 Sep 10 |
nicklas |
72 |
test_load(id_timestamp); |
738 |
09 Jun 05 |
nicklas |
73 |
test_load(id_text); |
843 |
29 Jun 05 |
nicklas |
74 |
test_load(id_string); |
843 |
29 Jun 05 |
nicklas |
75 |
test_load(id_boolean); |
855 |
01 Jul 05 |
nicklas |
76 |
test_load(id_enum); |
3527 |
21 Jun 07 |
nicklas |
77 |
test_load(id2_enum); |
738 |
09 Jun 05 |
nicklas |
78 |
|
7099 |
07 Mar 16 |
nicklas |
79 |
test_list(null, -1); |
738 |
09 Jun 05 |
nicklas |
80 |
|
3527 |
21 Jun 07 |
nicklas |
81 |
test_find_value(id2_enum, "one", false, false, "one"); |
3527 |
21 Jun 07 |
nicklas |
82 |
test_find_value(id2_enum, "one ", false, false, null); |
3527 |
21 Jun 07 |
nicklas |
83 |
test_find_value(id2_enum, "one ", false, true, "one"); |
3527 |
21 Jun 07 |
nicklas |
84 |
test_find_value(id2_enum, "ONE", false, false, null); |
3527 |
21 Jun 07 |
nicklas |
85 |
test_find_value(id2_enum, "ONE", true, false, "one"); |
3527 |
21 Jun 07 |
nicklas |
86 |
test_find_value(id2_enum, "ONE ", true, false, null); |
3527 |
21 Jun 07 |
nicklas |
87 |
test_find_value(id2_enum, "ONE ", true, true, "one"); |
3527 |
21 Jun 07 |
nicklas |
88 |
test_find_value(id2_enum, "two", false, false, null); |
3527 |
21 Jun 07 |
nicklas |
89 |
test_find_value(id2_enum, "two ", false, false, "two "); |
3527 |
21 Jun 07 |
nicklas |
90 |
test_find_value(id2_enum, "two", false, true, "two "); |
3527 |
21 Jun 07 |
nicklas |
91 |
test_find_value(id2_enum, "TWO", false, false, null); |
3527 |
21 Jun 07 |
nicklas |
92 |
test_find_value(id2_enum, "TWO ", false, false, null); |
3527 |
21 Jun 07 |
nicklas |
93 |
test_find_value(id2_enum, "TWO ", true, false, "two "); |
3527 |
21 Jun 07 |
nicklas |
94 |
test_find_value(id2_enum, "TWO", true, true, "two "); |
3527 |
21 Jun 07 |
nicklas |
95 |
|
1529 |
27 Oct 05 |
nicklas |
96 |
if (TestUtil.waitBeforeDelete()) TestUtil.waitForEnter(); |
1529 |
27 Oct 05 |
nicklas |
97 |
|
738 |
09 Jun 05 |
nicklas |
// Standard test: Delete |
738 |
09 Jun 05 |
nicklas |
99 |
test_delete(id_int); |
936 |
14 Jul 05 |
nicklas |
100 |
test_delete(id_long); |
738 |
09 Jun 05 |
nicklas |
101 |
test_delete(id_float); |
936 |
14 Jul 05 |
nicklas |
102 |
test_delete(id_double); |
738 |
09 Jun 05 |
nicklas |
103 |
test_delete(id_date); |
5422 |
22 Sep 10 |
nicklas |
104 |
test_delete(id_timestamp); |
738 |
09 Jun 05 |
nicklas |
105 |
test_delete(id_text); |
843 |
29 Jun 05 |
nicklas |
106 |
test_delete(id_string); |
843 |
29 Jun 05 |
nicklas |
107 |
test_delete(id_boolean); |
855 |
01 Jul 05 |
nicklas |
108 |
test_delete(id_enum); |
7290 |
31 Jan 17 |
nicklas |
109 |
test_delete(id2_enum); |
738 |
09 Jun 05 |
nicklas |
110 |
write("++Testing annotation types "+(ok ? "OK" : "Failed")+"\n"); |
738 |
09 Jun 05 |
nicklas |
111 |
return ok; |
738 |
09 Jun 05 |
nicklas |
112 |
} |
738 |
09 Jun 05 |
nicklas |
113 |
|
4544 |
25 Sep 08 |
nicklas |
114 |
static int test_create(String name, Type type, int unitId, |
4544 |
25 Sep 08 |
nicklas |
115 |
Object defaultValue, Number maxValue, Item itemType, int multiplicity, Object[] enumValues, boolean setAll) |
738 |
09 Jun 05 |
nicklas |
116 |
{ |
738 |
09 Jun 05 |
nicklas |
117 |
if (!TestUtil.hasPermission(Permission.CREATE, Item.ANNOTATIONTYPE)) return 0; |
738 |
09 Jun 05 |
nicklas |
118 |
int id = 0; |
738 |
09 Jun 05 |
nicklas |
119 |
DbControl dc = null; |
738 |
09 Jun 05 |
nicklas |
120 |
try |
738 |
09 Jun 05 |
nicklas |
121 |
{ |
738 |
09 Jun 05 |
nicklas |
122 |
dc = TestUtil.getDbControl(); |
738 |
09 Jun 05 |
nicklas |
123 |
AnnotationType at = AnnotationType.getNew(dc, type); |
738 |
09 Jun 05 |
nicklas |
124 |
if(setAll) |
738 |
09 Jun 05 |
nicklas |
125 |
{ |
3586 |
20 Jul 07 |
nicklas |
126 |
at.setName( "Test annotation type: "+type); |
738 |
09 Jun 05 |
nicklas |
127 |
at.setDescription("Added at "+new Date()); |
738 |
09 Jun 05 |
nicklas |
128 |
at.setRequiredForMiame(true); |
738 |
09 Jun 05 |
nicklas |
129 |
at.setHeight(10); |
738 |
09 Jun 05 |
nicklas |
130 |
at.setWidth(60); |
2933 |
17 Nov 06 |
nicklas |
131 |
at.setExternalId("my.external.annotationtype"); |
738 |
09 Jun 05 |
nicklas |
132 |
} |
3586 |
20 Jul 07 |
nicklas |
133 |
at.setMultiplicity(multiplicity); |
3586 |
20 Jul 07 |
nicklas |
134 |
if (name != null) at.setName(name); |
4544 |
25 Sep 08 |
nicklas |
135 |
if (unitId != 0) |
4544 |
25 Sep 08 |
nicklas |
136 |
{ |
4544 |
25 Sep 08 |
nicklas |
137 |
at.setDefaultUnit(Unit.getById(dc, unitId)); |
4544 |
25 Sep 08 |
nicklas |
138 |
} |
855 |
01 Jul 05 |
nicklas |
139 |
if (enumValues != null) |
855 |
01 Jul 05 |
nicklas |
140 |
{ |
855 |
01 Jul 05 |
nicklas |
141 |
at.setEnumeration(true); |
855 |
01 Jul 05 |
nicklas |
142 |
at.setValues(Arrays.asList(enumValues)); |
858 |
01 Jul 05 |
nicklas |
143 |
at.setDisplayAsList(true); |
855 |
01 Jul 05 |
nicklas |
144 |
} |
843 |
29 Jun 05 |
nicklas |
145 |
if (defaultValue != null) at.setDefaultValue(defaultValue.toString()); |
3586 |
20 Jul 07 |
nicklas |
146 |
if (maxValue != null) |
3586 |
20 Jul 07 |
nicklas |
147 |
{ |
3586 |
20 Jul 07 |
nicklas |
148 |
if (type.isNumerical()) |
3586 |
20 Jul 07 |
nicklas |
149 |
{ |
3586 |
20 Jul 07 |
nicklas |
150 |
at.setMinValueLong(0l); |
3586 |
20 Jul 07 |
nicklas |
151 |
at.setMaxValueLong(maxValue.longValue()); |
3586 |
20 Jul 07 |
nicklas |
152 |
} |
3586 |
20 Jul 07 |
nicklas |
153 |
else if (type == Type.STRING) |
3586 |
20 Jul 07 |
nicklas |
154 |
{ |
3586 |
20 Jul 07 |
nicklas |
155 |
at.setMaxLength(maxValue.intValue()); |
3586 |
20 Jul 07 |
nicklas |
156 |
} |
3586 |
20 Jul 07 |
nicklas |
157 |
} |
744 |
10 Jun 05 |
nicklas |
158 |
at.enableForItem(itemType); |
738 |
09 Jun 05 |
nicklas |
159 |
dc.saveItem(at); |
738 |
09 Jun 05 |
nicklas |
160 |
dc.commit(); |
1190 |
01 Sep 05 |
nicklas |
161 |
dc = TestUtil.getDbControl(); |
5060 |
19 Aug 09 |
nicklas |
162 |
dc.reattachItem(at, false); |
738 |
09 Jun 05 |
nicklas |
163 |
id = at.getId(); |
738 |
09 Jun 05 |
nicklas |
164 |
write_item(0, at); |
738 |
09 Jun 05 |
nicklas |
165 |
write("--Create annotation type OK"); |
738 |
09 Jun 05 |
nicklas |
166 |
} |
816 |
23 Jun 05 |
nicklas |
167 |
catch (Throwable ex) |
738 |
09 Jun 05 |
nicklas |
168 |
{ |
738 |
09 Jun 05 |
nicklas |
169 |
write("--Create annotation type FAILED"); |
738 |
09 Jun 05 |
nicklas |
170 |
ex.printStackTrace(); |
738 |
09 Jun 05 |
nicklas |
171 |
ok = false; |
738 |
09 Jun 05 |
nicklas |
172 |
} |
738 |
09 Jun 05 |
nicklas |
173 |
finally |
738 |
09 Jun 05 |
nicklas |
174 |
{ |
738 |
09 Jun 05 |
nicklas |
175 |
if (dc != null) dc.close(); |
738 |
09 Jun 05 |
nicklas |
176 |
} |
738 |
09 Jun 05 |
nicklas |
177 |
return id; |
738 |
09 Jun 05 |
nicklas |
178 |
} |
738 |
09 Jun 05 |
nicklas |
179 |
|
738 |
09 Jun 05 |
nicklas |
180 |
static void test_load(int id) |
738 |
09 Jun 05 |
nicklas |
181 |
{ |
738 |
09 Jun 05 |
nicklas |
182 |
if (id == 0) return; |
738 |
09 Jun 05 |
nicklas |
183 |
DbControl dc = null; |
738 |
09 Jun 05 |
nicklas |
184 |
try |
738 |
09 Jun 05 |
nicklas |
185 |
{ |
738 |
09 Jun 05 |
nicklas |
186 |
dc = TestUtil.getDbControl(); |
738 |
09 Jun 05 |
nicklas |
187 |
AnnotationType at = AnnotationType.getById(dc, id); |
738 |
09 Jun 05 |
nicklas |
188 |
write_item(0, at); |
738 |
09 Jun 05 |
nicklas |
189 |
write("--Load annotation type OK"); |
738 |
09 Jun 05 |
nicklas |
190 |
} |
816 |
23 Jun 05 |
nicklas |
191 |
catch (Throwable ex) |
738 |
09 Jun 05 |
nicklas |
192 |
{ |
738 |
09 Jun 05 |
nicklas |
193 |
write("--Load annotation type FAILED"); |
738 |
09 Jun 05 |
nicklas |
194 |
ex.printStackTrace(); |
738 |
09 Jun 05 |
nicklas |
195 |
ok = false; |
738 |
09 Jun 05 |
nicklas |
196 |
} |
738 |
09 Jun 05 |
nicklas |
197 |
finally |
738 |
09 Jun 05 |
nicklas |
198 |
{ |
738 |
09 Jun 05 |
nicklas |
199 |
if (dc != null) dc.close(); |
738 |
09 Jun 05 |
nicklas |
200 |
} |
738 |
09 Jun 05 |
nicklas |
201 |
} |
738 |
09 Jun 05 |
nicklas |
202 |
|
7099 |
07 Mar 16 |
nicklas |
203 |
static boolean test_list(String category, int expectedResults) |
738 |
09 Jun 05 |
nicklas |
204 |
{ |
738 |
09 Jun 05 |
nicklas |
205 |
DbControl dc = null; |
738 |
09 Jun 05 |
nicklas |
206 |
try |
738 |
09 Jun 05 |
nicklas |
207 |
{ |
738 |
09 Jun 05 |
nicklas |
208 |
dc = TestUtil.getDbControl(); |
7099 |
07 Mar 16 |
nicklas |
209 |
ItemQuery<AnnotationType> query = AnnotationType.getQuery(null); |
7099 |
07 Mar 16 |
nicklas |
210 |
if (category != null) |
7099 |
07 Mar 16 |
nicklas |
211 |
{ |
7099 |
07 Mar 16 |
nicklas |
212 |
query.join(Hql.innerJoin("categories", "ct")); |
7099 |
07 Mar 16 |
nicklas |
213 |
query.restrict(Restrictions.eq(Hql.property("ct", "name"), Expressions.string(category))); |
7099 |
07 Mar 16 |
nicklas |
214 |
} |
7099 |
07 Mar 16 |
nicklas |
215 |
ItemResultList<AnnotationType> l = query.list(dc); |
738 |
09 Jun 05 |
nicklas |
216 |
for (int i = 0; i<l.size(); i++) |
738 |
09 Jun 05 |
nicklas |
217 |
{ |
738 |
09 Jun 05 |
nicklas |
218 |
write_item(i, l.get(i)); |
738 |
09 Jun 05 |
nicklas |
219 |
} |
744 |
10 Jun 05 |
nicklas |
220 |
if (expectedResults >= 0 && expectedResults != l.size()) |
744 |
10 Jun 05 |
nicklas |
221 |
{ |
744 |
10 Jun 05 |
nicklas |
222 |
throw new BaseException("Expected "+expectedResults+" results, not "+l.size()); |
744 |
10 Jun 05 |
nicklas |
223 |
} |
738 |
09 Jun 05 |
nicklas |
224 |
write("--List annotation types OK ("+l.size()+")"); |
738 |
09 Jun 05 |
nicklas |
225 |
} |
816 |
23 Jun 05 |
nicklas |
226 |
catch (Throwable ex) |
738 |
09 Jun 05 |
nicklas |
227 |
{ |
738 |
09 Jun 05 |
nicklas |
228 |
write("--List annotation types FAILED"); |
738 |
09 Jun 05 |
nicklas |
229 |
ex.printStackTrace(); |
738 |
09 Jun 05 |
nicklas |
230 |
ok = false; |
738 |
09 Jun 05 |
nicklas |
231 |
} |
738 |
09 Jun 05 |
nicklas |
232 |
finally |
738 |
09 Jun 05 |
nicklas |
233 |
{ |
738 |
09 Jun 05 |
nicklas |
234 |
if (dc != null) dc.close(); |
738 |
09 Jun 05 |
nicklas |
235 |
} |
7099 |
07 Mar 16 |
nicklas |
236 |
return ok; |
738 |
09 Jun 05 |
nicklas |
237 |
} |
738 |
09 Jun 05 |
nicklas |
238 |
|
738 |
09 Jun 05 |
nicklas |
239 |
static void test_delete(int id) |
738 |
09 Jun 05 |
nicklas |
240 |
{ |
738 |
09 Jun 05 |
nicklas |
241 |
if (id == 0) return; |
738 |
09 Jun 05 |
nicklas |
242 |
DbControl dc = null; |
738 |
09 Jun 05 |
nicklas |
243 |
try |
738 |
09 Jun 05 |
nicklas |
244 |
{ |
738 |
09 Jun 05 |
nicklas |
245 |
dc = TestUtil.getDbControl(); |
738 |
09 Jun 05 |
nicklas |
246 |
AnnotationType at = AnnotationType.getById(dc, id); |
738 |
09 Jun 05 |
nicklas |
247 |
dc.deleteItem(at); |
5340 |
10 May 10 |
nicklas |
248 |
Set<ItemProxy> using = at.getUsingItems(); |
5340 |
10 May 10 |
nicklas |
249 |
if (using.size() > 0) |
5340 |
10 May 10 |
nicklas |
250 |
{ |
5340 |
10 May 10 |
nicklas |
251 |
throw new BaseException(at + " is used by " + using); |
5340 |
10 May 10 |
nicklas |
252 |
} |
738 |
09 Jun 05 |
nicklas |
253 |
dc.commit(); |
738 |
09 Jun 05 |
nicklas |
254 |
write("--Delete annotation type OK"); |
738 |
09 Jun 05 |
nicklas |
255 |
} |
816 |
23 Jun 05 |
nicklas |
256 |
catch (Throwable ex) |
738 |
09 Jun 05 |
nicklas |
257 |
{ |
738 |
09 Jun 05 |
nicklas |
258 |
write("--Delete annotation type FAILED"); |
738 |
09 Jun 05 |
nicklas |
259 |
ex.printStackTrace(); |
738 |
09 Jun 05 |
nicklas |
260 |
ok = false; |
738 |
09 Jun 05 |
nicklas |
261 |
} |
738 |
09 Jun 05 |
nicklas |
262 |
finally |
738 |
09 Jun 05 |
nicklas |
263 |
{ |
738 |
09 Jun 05 |
nicklas |
264 |
if (dc != null) dc.close(); |
738 |
09 Jun 05 |
nicklas |
265 |
} |
738 |
09 Jun 05 |
nicklas |
266 |
} |
738 |
09 Jun 05 |
nicklas |
267 |
|
7099 |
07 Mar 16 |
nicklas |
268 |
static void test_delete_all(String category) |
7099 |
07 Mar 16 |
nicklas |
269 |
{ |
7099 |
07 Mar 16 |
nicklas |
270 |
DbControl dc = null; |
7099 |
07 Mar 16 |
nicklas |
271 |
try |
7099 |
07 Mar 16 |
nicklas |
272 |
{ |
7099 |
07 Mar 16 |
nicklas |
273 |
dc = TestUtil.getDbControl(); |
7099 |
07 Mar 16 |
nicklas |
274 |
ItemQuery<AnnotationType> query = AnnotationType.getQuery(null); |
7099 |
07 Mar 16 |
nicklas |
275 |
if (category != null) |
7099 |
07 Mar 16 |
nicklas |
276 |
{ |
7099 |
07 Mar 16 |
nicklas |
277 |
query.join(Hql.innerJoin("categories", "ct")); |
7099 |
07 Mar 16 |
nicklas |
278 |
query.restrict(Restrictions.eq(Hql.property("ct", "name"), Expressions.string(category))); |
7099 |
07 Mar 16 |
nicklas |
279 |
} |
7099 |
07 Mar 16 |
nicklas |
280 |
ItemResultList<AnnotationType> l = query.list(dc); |
7099 |
07 Mar 16 |
nicklas |
281 |
int numDeleted = Trashcan.delete(dc.getSessionControl(), l, true, null); |
7099 |
07 Mar 16 |
nicklas |
282 |
if (numDeleted != l.size()) throw new BaseException("Could not delete all items: " + numDeleted + " of " + l.size()); |
7099 |
07 Mar 16 |
nicklas |
283 |
dc.commit(); |
7099 |
07 Mar 16 |
nicklas |
284 |
write("--Delete all annotation types OK ("+l.size()+")"); |
7099 |
07 Mar 16 |
nicklas |
285 |
} |
7099 |
07 Mar 16 |
nicklas |
286 |
catch (Throwable ex) |
7099 |
07 Mar 16 |
nicklas |
287 |
{ |
7099 |
07 Mar 16 |
nicklas |
288 |
write("--Delete all annotation types FAILED"); |
7099 |
07 Mar 16 |
nicklas |
289 |
ex.printStackTrace(); |
7099 |
07 Mar 16 |
nicklas |
290 |
ok = false; |
7099 |
07 Mar 16 |
nicklas |
291 |
} |
7099 |
07 Mar 16 |
nicklas |
292 |
finally |
7099 |
07 Mar 16 |
nicklas |
293 |
{ |
7099 |
07 Mar 16 |
nicklas |
294 |
if (dc != null) dc.close(); |
7099 |
07 Mar 16 |
nicklas |
295 |
} |
7099 |
07 Mar 16 |
nicklas |
296 |
} |
738 |
09 Jun 05 |
nicklas |
297 |
|
7099 |
07 Mar 16 |
nicklas |
298 |
|
738 |
09 Jun 05 |
nicklas |
299 |
static void write_header() |
738 |
09 Jun 05 |
nicklas |
300 |
{ |
738 |
09 Jun 05 |
nicklas |
301 |
if (!TestUtil.getSilent()) |
738 |
09 Jun 05 |
nicklas |
302 |
{ |
4544 |
25 Sep 08 |
nicklas |
303 |
write(" \tID \tName \tDescription\tValue type\tDefault unit\tMultiplicity\tExternal ID\tWidth\tHeight\tMiame\tDefault value\tItem types\tEnumeration values"); |
4544 |
25 Sep 08 |
nicklas |
304 |
write("-- \t-- \t--------- \t-----------\t----------\t------------\t------------\t-----------\t-----\t------\t-----\t-------------\t----------\t------------------"); |
738 |
09 Jun 05 |
nicklas |
305 |
} |
738 |
09 Jun 05 |
nicklas |
306 |
} |
738 |
09 Jun 05 |
nicklas |
307 |
static void write_item(int i, AnnotationType at) |
738 |
09 Jun 05 |
nicklas |
308 |
throws BaseException |
738 |
09 Jun 05 |
nicklas |
309 |
{ |
738 |
09 Jun 05 |
nicklas |
310 |
if (!TestUtil.getSilent()) |
738 |
09 Jun 05 |
nicklas |
311 |
write(i+":\t"+at.getId()+"\t"+at.getName()+"\t"+at.getDescription()+"\t"+at.getValueType()+ |
4544 |
25 Sep 08 |
nicklas |
312 |
"\t" + at.getDefaultUnit()+ |
2933 |
17 Nov 06 |
nicklas |
313 |
"\t"+at.getMultiplicity()+"\t"+at.getExternalId()+"\t"+at.getWidth()+"\t"+at.getHeight()+"\t"+at.isRequiredForMiame()+ |
855 |
01 Jul 05 |
nicklas |
314 |
"\t"+at.getDefaultValue()+"\t"+at.getEnabledItems()+"\t"+at.getValues()); |
738 |
09 Jun 05 |
nicklas |
315 |
} |
738 |
09 Jun 05 |
nicklas |
316 |
static void write(String message) |
738 |
09 Jun 05 |
nicklas |
317 |
{ |
738 |
09 Jun 05 |
nicklas |
318 |
System.out.println(message); |
738 |
09 Jun 05 |
nicklas |
319 |
} |
3527 |
21 Jun 07 |
nicklas |
320 |
|
3527 |
21 Jun 07 |
nicklas |
321 |
static void test_find_value(int id, String value, boolean ignoreCase, boolean trim, String expected) |
3527 |
21 Jun 07 |
nicklas |
322 |
{ |
3527 |
21 Jun 07 |
nicklas |
323 |
if (id == 0) return; |
3527 |
21 Jun 07 |
nicklas |
324 |
DbControl dc = null; |
3527 |
21 Jun 07 |
nicklas |
325 |
try |
3527 |
21 Jun 07 |
nicklas |
326 |
{ |
3527 |
21 Jun 07 |
nicklas |
327 |
dc = TestUtil.getDbControl(); |
3527 |
21 Jun 07 |
nicklas |
328 |
AnnotationType at = AnnotationType.getById(dc, id); |
3527 |
21 Jun 07 |
nicklas |
329 |
String found = at.findValue(value, ignoreCase, trim); |
3527 |
21 Jun 07 |
nicklas |
330 |
if ((expected != null && !expected.equals(found)) || (expected == null && found != null)) |
3527 |
21 Jun 07 |
nicklas |
331 |
{ |
3527 |
21 Jun 07 |
nicklas |
332 |
throw new Exception("Looking for '" + value + "'; found '" + found + |
3527 |
21 Jun 07 |
nicklas |
333 |
"'; expected '" + expected + "'"); |
3527 |
21 Jun 07 |
nicklas |
334 |
} |
3527 |
21 Jun 07 |
nicklas |
335 |
write("--Find annotation value OK; looking for '" + value + "'; found '" + found + "'"); |
3527 |
21 Jun 07 |
nicklas |
336 |
} |
3527 |
21 Jun 07 |
nicklas |
337 |
catch (Throwable ex) |
3527 |
21 Jun 07 |
nicklas |
338 |
{ |
3527 |
21 Jun 07 |
nicklas |
339 |
write("--Find annotation value FAILED"); |
3527 |
21 Jun 07 |
nicklas |
340 |
ex.printStackTrace(); |
3527 |
21 Jun 07 |
nicklas |
341 |
ok = false; |
3527 |
21 Jun 07 |
nicklas |
342 |
} |
3527 |
21 Jun 07 |
nicklas |
343 |
finally |
3527 |
21 Jun 07 |
nicklas |
344 |
{ |
3527 |
21 Jun 07 |
nicklas |
345 |
if (dc != null) dc.close(); |
3527 |
21 Jun 07 |
nicklas |
346 |
} |
3527 |
21 Jun 07 |
nicklas |
347 |
} |
3527 |
21 Jun 07 |
nicklas |
348 |
|
7245 |
01 Dec 16 |
nicklas |
349 |
static void test_set_project_annotations(int id, boolean projectAnnotations) |
7245 |
01 Dec 16 |
nicklas |
350 |
{ |
7245 |
01 Dec 16 |
nicklas |
351 |
if (id == 0) return; |
7245 |
01 Dec 16 |
nicklas |
352 |
DbControl dc = null; |
7245 |
01 Dec 16 |
nicklas |
353 |
try |
7245 |
01 Dec 16 |
nicklas |
354 |
{ |
7245 |
01 Dec 16 |
nicklas |
355 |
dc = TestUtil.getDbControl(); |
7245 |
01 Dec 16 |
nicklas |
356 |
AnnotationType at = AnnotationType.getById(dc, id); |
7245 |
01 Dec 16 |
nicklas |
357 |
at.setProjectAnnotations(projectAnnotations); |
7245 |
01 Dec 16 |
nicklas |
358 |
dc.commit(); |
7245 |
01 Dec 16 |
nicklas |
359 |
write("--Set project annotations OK"); |
7245 |
01 Dec 16 |
nicklas |
360 |
} |
7245 |
01 Dec 16 |
nicklas |
361 |
catch (Throwable ex) |
7245 |
01 Dec 16 |
nicklas |
362 |
{ |
7245 |
01 Dec 16 |
nicklas |
363 |
write("--Set project annotations FAILED"); |
7245 |
01 Dec 16 |
nicklas |
364 |
ex.printStackTrace(); |
7245 |
01 Dec 16 |
nicklas |
365 |
ok = false; |
7245 |
01 Dec 16 |
nicklas |
366 |
} |
7245 |
01 Dec 16 |
nicklas |
367 |
finally |
7245 |
01 Dec 16 |
nicklas |
368 |
{ |
7245 |
01 Dec 16 |
nicklas |
369 |
if (dc != null) dc.close(); |
7245 |
01 Dec 16 |
nicklas |
370 |
} |
7245 |
01 Dec 16 |
nicklas |
371 |
} |
7245 |
01 Dec 16 |
nicklas |
372 |
|
738 |
09 Jun 05 |
nicklas |
373 |
} |