src/test/TestAnnotationType.java

Code
Comments
Other
Rev Date Author Line
738 09 Jun 05 nicklas 1 /*
738 09 Jun 05 nicklas 2   $Id$
738 09 Jun 05 nicklas 3   
3675 16 Aug 07 jari 4   Copyright (C) 2005 Nicklas Nordborg
4889 06 Apr 09 nicklas 5   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg
3675 16 Aug 07 jari 6   Copyright (C) 2007 Nicklas Nordborg
738 09 Jun 05 nicklas 7   
2304 22 May 06 jari 8   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 9   Available at http://base.thep.lu.se/
738 09 Jun 05 nicklas 10   
738 09 Jun 05 nicklas 11   BASE is free software; you can redistribute it and/or
738 09 Jun 05 nicklas 12   modify it under the terms of the GNU General Public License
4480 05 Sep 08 jari 13   as published by the Free Software Foundation; either version 3
738 09 Jun 05 nicklas 14   of the License, or (at your option) any later version.
738 09 Jun 05 nicklas 15   
738 09 Jun 05 nicklas 16   BASE is distributed in the hope that it will be useful,
738 09 Jun 05 nicklas 17   but WITHOUT ANY WARRANTY; without even the implied warranty of
738 09 Jun 05 nicklas 18   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
738 09 Jun 05 nicklas 19   GNU General Public License for more details.
738 09 Jun 05 nicklas 20   
738 09 Jun 05 nicklas 21   You should have received a copy of the GNU General Public License
4514 11 Sep 08 jari 22   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 55     // 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 98     // 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 }