src/test/TestPlateType.java

Code
Comments
Other
Rev Date Author Line
874 05 Jul 05 nicklas 1 /*
874 05 Jul 05 nicklas 2   $Id$
874 05 Jul 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
874 05 Jul 05 nicklas 6
2304 22 May 06 jari 7   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 8   Available at http://base.thep.lu.se/
874 05 Jul 05 nicklas 9
874 05 Jul 05 nicklas 10   BASE is free software; you can redistribute it and/or
874 05 Jul 05 nicklas 11   modify it under the terms of the GNU General Public License
4480 05 Sep 08 jari 12   as published by the Free Software Foundation; either version 3
874 05 Jul 05 nicklas 13   of the License, or (at your option) any later version.
874 05 Jul 05 nicklas 14
874 05 Jul 05 nicklas 15   BASE is distributed in the hope that it will be useful,
874 05 Jul 05 nicklas 16   but WITHOUT ANY WARRANTY; without even the implied warranty of
874 05 Jul 05 nicklas 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
874 05 Jul 05 nicklas 18   GNU General Public License for more details.
874 05 Jul 05 nicklas 19
874 05 Jul 05 nicklas 20   You should have received a copy of the GNU General Public License
4514 11 Sep 08 jari 21   along with BASE. If not, see <http://www.gnu.org/licenses/>.
874 05 Jul 05 nicklas 22 */
874 05 Jul 05 nicklas 23 import net.sf.basedb.core.*;
874 05 Jul 05 nicklas 24
874 05 Jul 05 nicklas 25 import java.util.Date;
5340 10 May 10 nicklas 26 import java.util.Set;
874 05 Jul 05 nicklas 27
874 05 Jul 05 nicklas 28 public class TestPlateType
874 05 Jul 05 nicklas 29 {
874 05 Jul 05 nicklas 30
874 05 Jul 05 nicklas 31   static boolean ok = true;
874 05 Jul 05 nicklas 32   public static void main(String[] args)
874 05 Jul 05 nicklas 33   {
874 05 Jul 05 nicklas 34     TestUtil.checkArgs(args);
874 05 Jul 05 nicklas 35     TestUtil.begin();
874 05 Jul 05 nicklas 36     ok = test_all();
874 05 Jul 05 nicklas 37     TestUtil.stop();
874 05 Jul 05 nicklas 38   }
874 05 Jul 05 nicklas 39
874 05 Jul 05 nicklas 40   static boolean test_all()
874 05 Jul 05 nicklas 41   {
874 05 Jul 05 nicklas 42     write("++Testing plate types");
874 05 Jul 05 nicklas 43     write_header();
874 05 Jul 05 nicklas 44     // Standard tests: create, load, list
874 05 Jul 05 nicklas 45     int plateGeometryId = TestPlateGeometry.test_create(8, 12, false);
874 05 Jul 05 nicklas 46     int id = test_create(plateGeometryId, true);
874 05 Jul 05 nicklas 47     int id2 = test_create(plateGeometryId, false);
874 05 Jul 05 nicklas 48     test_load(id);
874 05 Jul 05 nicklas 49     test_list(-1);
874 05 Jul 05 nicklas 50
881 06 Jul 05 nicklas 51     // Test events
5630 13 May 11 nicklas 52     int protocolTypeId = TestItemSubtype.test_create(Item.PROTOCOL, "Plate protocol type");
874 05 Jul 05 nicklas 53     int eventTypeId = test_create_event_type(id, protocolTypeId);
874 05 Jul 05 nicklas 54     test_list_event_types(id, 1);
1529 27 Oct 05 nicklas 55     
1529 27 Oct 05 nicklas 56     if (TestUtil.waitBeforeDelete()) TestUtil.waitForEnter();
874 05 Jul 05 nicklas 57     test_delete_event_type(eventTypeId);
5630 13 May 11 nicklas 58     TestItemSubtype.test_delete(protocolTypeId);
874 05 Jul 05 nicklas 59     
874 05 Jul 05 nicklas 60     // Standard test: Delete
874 05 Jul 05 nicklas 61     test_delete(id);
874 05 Jul 05 nicklas 62     test_delete(id2);
874 05 Jul 05 nicklas 63     TestPlateGeometry.test_delete(plateGeometryId);
874 05 Jul 05 nicklas 64     write("++Testing plate types "+(ok ? "OK" : "Failed")+"\n");
874 05 Jul 05 nicklas 65     return ok;
874 05 Jul 05 nicklas 66   }
874 05 Jul 05 nicklas 67
874 05 Jul 05 nicklas 68   static int test_create(int plateGeometryId, boolean setAll)
874 05 Jul 05 nicklas 69   {
874 05 Jul 05 nicklas 70     if (plateGeometryId == 0 || !TestUtil.hasPermission(Permission.CREATE, Item.PLATETYPE)) return 0;
874 05 Jul 05 nicklas 71     int id = 0;
874 05 Jul 05 nicklas 72     DbControl dc = null;
874 05 Jul 05 nicklas 73     try
874 05 Jul 05 nicklas 74     {
874 05 Jul 05 nicklas 75       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 76       PlateGeometry pg = PlateGeometry.getById(dc, plateGeometryId);
874 05 Jul 05 nicklas 77       PlateType pt = PlateType.getNew(dc, pg);
874 05 Jul 05 nicklas 78       if (setAll)
874 05 Jul 05 nicklas 79       {
874 05 Jul 05 nicklas 80         pt.setName("Test plate type");
874 05 Jul 05 nicklas 81         pt.setDescription("Added at "+new Date());
874 05 Jul 05 nicklas 82       }
874 05 Jul 05 nicklas 83       dc.saveItem(pt);
874 05 Jul 05 nicklas 84       dc.commit();
874 05 Jul 05 nicklas 85       id = pt.getId();
874 05 Jul 05 nicklas 86       dc = TestUtil.getDbControl();
5060 19 Aug 09 nicklas 87       dc.reattachItem(pt, false);
874 05 Jul 05 nicklas 88       write_item(0, pt);
874 05 Jul 05 nicklas 89       write("--Create plate type OK");
874 05 Jul 05 nicklas 90     }
874 05 Jul 05 nicklas 91     catch (Throwable ex)
874 05 Jul 05 nicklas 92     {
874 05 Jul 05 nicklas 93       write("--Create plate type FAILED");
874 05 Jul 05 nicklas 94       ex.printStackTrace();
874 05 Jul 05 nicklas 95       ok = false;
874 05 Jul 05 nicklas 96     }
874 05 Jul 05 nicklas 97     finally
874 05 Jul 05 nicklas 98     {
874 05 Jul 05 nicklas 99       if (dc != null) dc.close();
874 05 Jul 05 nicklas 100     }
874 05 Jul 05 nicklas 101     return id;
874 05 Jul 05 nicklas 102   }
874 05 Jul 05 nicklas 103
874 05 Jul 05 nicklas 104   static void test_load(int id)
874 05 Jul 05 nicklas 105   {
874 05 Jul 05 nicklas 106     if (id == 0) return;
874 05 Jul 05 nicklas 107     DbControl dc = null;
874 05 Jul 05 nicklas 108     try
874 05 Jul 05 nicklas 109     {
874 05 Jul 05 nicklas 110       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 111       PlateType pg = PlateType.getById(dc, id);
874 05 Jul 05 nicklas 112       write_item(0, pg);
874 05 Jul 05 nicklas 113       write("--Load plate type OK");
874 05 Jul 05 nicklas 114     }
874 05 Jul 05 nicklas 115     catch (Throwable ex)
874 05 Jul 05 nicklas 116     {
874 05 Jul 05 nicklas 117       write("--Load plate type FAILED");
874 05 Jul 05 nicklas 118       ex.printStackTrace();
874 05 Jul 05 nicklas 119       ok = false;
874 05 Jul 05 nicklas 120     }
874 05 Jul 05 nicklas 121     finally
874 05 Jul 05 nicklas 122     {
874 05 Jul 05 nicklas 123       if (dc != null) dc.close();
874 05 Jul 05 nicklas 124     }
874 05 Jul 05 nicklas 125   }
874 05 Jul 05 nicklas 126
874 05 Jul 05 nicklas 127
874 05 Jul 05 nicklas 128   static void test_list(int expectedResults)
874 05 Jul 05 nicklas 129   {
874 05 Jul 05 nicklas 130     DbControl dc = null;
874 05 Jul 05 nicklas 131     try
874 05 Jul 05 nicklas 132     {
874 05 Jul 05 nicklas 133       dc = TestUtil.getDbControl();
1418 07 Oct 05 nicklas 134       ItemResultList<PlateType> l = PlateType.getQuery().list(dc);
874 05 Jul 05 nicklas 135       for (int i = 0; i<l.size(); i++)
874 05 Jul 05 nicklas 136       {
874 05 Jul 05 nicklas 137         write_item(i, l.get(i));
874 05 Jul 05 nicklas 138       }
874 05 Jul 05 nicklas 139       if (expectedResults >= 0 && expectedResults != l.size())
874 05 Jul 05 nicklas 140       {
874 05 Jul 05 nicklas 141         throw new BaseException("Expected "+expectedResults+" results, not "+l.size());
874 05 Jul 05 nicklas 142       }
874 05 Jul 05 nicklas 143       write("--List plate types OK ("+l.size()+")");
874 05 Jul 05 nicklas 144     }
874 05 Jul 05 nicklas 145     catch (Throwable ex)
874 05 Jul 05 nicklas 146     {
874 05 Jul 05 nicklas 147       write("--List plate types FAILED");
874 05 Jul 05 nicklas 148       ex.printStackTrace();
874 05 Jul 05 nicklas 149       ok = false;
874 05 Jul 05 nicklas 150     }
874 05 Jul 05 nicklas 151     finally
874 05 Jul 05 nicklas 152     {
874 05 Jul 05 nicklas 153       if (dc != null) dc.close();
874 05 Jul 05 nicklas 154     }
874 05 Jul 05 nicklas 155   }
874 05 Jul 05 nicklas 156
874 05 Jul 05 nicklas 157
874 05 Jul 05 nicklas 158   static void test_delete(int id)
874 05 Jul 05 nicklas 159   {
874 05 Jul 05 nicklas 160     if (id == 0) return;
874 05 Jul 05 nicklas 161     DbControl dc = null;
874 05 Jul 05 nicklas 162     try
874 05 Jul 05 nicklas 163     {
874 05 Jul 05 nicklas 164       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 165       PlateType pt = PlateType.getById(dc, id);
874 05 Jul 05 nicklas 166       dc.deleteItem(pt);
5340 10 May 10 nicklas 167       Set<ItemProxy> using = pt.getUsingItems();
5340 10 May 10 nicklas 168       if (using.size() > 0) 
5340 10 May 10 nicklas 169       {
5340 10 May 10 nicklas 170          throw new BaseException(pt + " is used by " + using);
5340 10 May 10 nicklas 171       }
874 05 Jul 05 nicklas 172       dc.commit();
874 05 Jul 05 nicklas 173       write("--Delete plate type OK");
874 05 Jul 05 nicklas 174     }
874 05 Jul 05 nicklas 175     catch (Throwable ex)
874 05 Jul 05 nicklas 176     {
874 05 Jul 05 nicklas 177       write("--Delete plate type FAILED");
874 05 Jul 05 nicklas 178       ex.printStackTrace();
874 05 Jul 05 nicklas 179       ok = false;
874 05 Jul 05 nicklas 180     }
874 05 Jul 05 nicklas 181     finally
874 05 Jul 05 nicklas 182     {
874 05 Jul 05 nicklas 183       if (dc != null) dc.close();
874 05 Jul 05 nicklas 184     }
874 05 Jul 05 nicklas 185   }
874 05 Jul 05 nicklas 186
874 05 Jul 05 nicklas 187   static void write_header()
874 05 Jul 05 nicklas 188   {
874 05 Jul 05 nicklas 189     if (!TestUtil.getSilent())
874 05 Jul 05 nicklas 190     {
874 05 Jul 05 nicklas 191       System.out.println("   \tID \tName      \tDescription\tPlate geometry");
874 05 Jul 05 nicklas 192       System.out.println("-- \t-- \t--------- \t-----------\t--------------");
874 05 Jul 05 nicklas 193     }
874 05 Jul 05 nicklas 194   }
874 05 Jul 05 nicklas 195   static void write_item(int i, PlateType pt)
874 05 Jul 05 nicklas 196     throws BaseException
874 05 Jul 05 nicklas 197   {
874 05 Jul 05 nicklas 198     if (!TestUtil.getSilent()) System.out.println(i+":\t"+pt.getId()+"\t"+pt.getName()+"\t"+pt.getDescription()+
874 05 Jul 05 nicklas 199       "\t"+pt.getPlateGeometry());
874 05 Jul 05 nicklas 200   }
874 05 Jul 05 nicklas 201   static void write_item(int i, PlateEventType pet)
874 05 Jul 05 nicklas 202     throws BaseException
874 05 Jul 05 nicklas 203   {
874 05 Jul 05 nicklas 204     if (!TestUtil.getSilent()) System.out.println(i+":\t"+pet.getId()+"\t"+pet.getName()+"\t"+pet.getDescription()+
874 05 Jul 05 nicklas 205       "\t"+pet.getPlateType()+"\t"+pet.getOrdinal()+"\t"+pet.getProtocolType());
874 05 Jul 05 nicklas 206   }
874 05 Jul 05 nicklas 207   static void write(String message)
874 05 Jul 05 nicklas 208   {
874 05 Jul 05 nicklas 209     System.out.println(message);
874 05 Jul 05 nicklas 210   }
874 05 Jul 05 nicklas 211
874 05 Jul 05 nicklas 212   static int test_create_event_type(int plateTypeId, int protocolTypeId)
874 05 Jul 05 nicklas 213   {
881 06 Jul 05 nicklas 214     if (plateTypeId == 0) return 0;
874 05 Jul 05 nicklas 215     int id = 0;
874 05 Jul 05 nicklas 216     DbControl dc = null;
874 05 Jul 05 nicklas 217     try
874 05 Jul 05 nicklas 218     {
874 05 Jul 05 nicklas 219       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 220       PlateType pt = PlateType.getById(dc, plateTypeId);
874 05 Jul 05 nicklas 221       PlateEventType pet = pt.newEventType();
874 05 Jul 05 nicklas 222       pet.setName("Test plate event type");
874 05 Jul 05 nicklas 223       pet.setDescription("Added at "+new Date());
874 05 Jul 05 nicklas 224       pet.setOrdinal(1);
5630 13 May 11 nicklas 225       if (protocolTypeId != 0) pet.setProtocolType(ItemSubtype.getById(dc, protocolTypeId));
874 05 Jul 05 nicklas 226       dc.saveItem(pet);
874 05 Jul 05 nicklas 227       dc.commit();
874 05 Jul 05 nicklas 228       id = pet.getId();
874 05 Jul 05 nicklas 229       dc = TestUtil.getDbControl();
5060 19 Aug 09 nicklas 230       dc.reattachItem(pet, false);
874 05 Jul 05 nicklas 231       write_item(0, pet);
874 05 Jul 05 nicklas 232       write("--Create event type OK");
874 05 Jul 05 nicklas 233     }
874 05 Jul 05 nicklas 234     catch (Exception ex)
874 05 Jul 05 nicklas 235     {
874 05 Jul 05 nicklas 236       write("--Create event type FAILED");
874 05 Jul 05 nicklas 237       ex.printStackTrace();
874 05 Jul 05 nicklas 238       ok = false;
874 05 Jul 05 nicklas 239     }
874 05 Jul 05 nicklas 240     finally
874 05 Jul 05 nicklas 241     {
874 05 Jul 05 nicklas 242       if (dc != null) dc.close();
874 05 Jul 05 nicklas 243     }
874 05 Jul 05 nicklas 244     return id;
874 05 Jul 05 nicklas 245   }
874 05 Jul 05 nicklas 246   
874 05 Jul 05 nicklas 247   static void test_list_event_types(int plateTypeId, int expectedResults)
874 05 Jul 05 nicklas 248   {
874 05 Jul 05 nicklas 249     if (plateTypeId == 0) return;
874 05 Jul 05 nicklas 250     DbControl dc = null;
874 05 Jul 05 nicklas 251     try
874 05 Jul 05 nicklas 252     {
874 05 Jul 05 nicklas 253       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 254       PlateType pt = PlateType.getById(dc, plateTypeId);
874 05 Jul 05 nicklas 255       
1418 07 Oct 05 nicklas 256       ItemResultList<PlateEventType> l = pt.getEventTypes().list(dc);
874 05 Jul 05 nicklas 257       for (int i = 0; i<l.size(); i++)
874 05 Jul 05 nicklas 258       {
874 05 Jul 05 nicklas 259         write_item(i, l.get(i));
874 05 Jul 05 nicklas 260       }
874 05 Jul 05 nicklas 261       if (expectedResults >= 0 && expectedResults != l.size())
874 05 Jul 05 nicklas 262       {
874 05 Jul 05 nicklas 263         throw new BaseException("Expected "+expectedResults+" results, not "+l.size());
874 05 Jul 05 nicklas 264       }
874 05 Jul 05 nicklas 265       write("--List event types OK ("+l.size()+")");
874 05 Jul 05 nicklas 266     }
874 05 Jul 05 nicklas 267     catch (Exception ex)
874 05 Jul 05 nicklas 268     {
874 05 Jul 05 nicklas 269       write("--List event types FAILED");
874 05 Jul 05 nicklas 270       ex.printStackTrace();
874 05 Jul 05 nicklas 271       ok = false;
874 05 Jul 05 nicklas 272     }
874 05 Jul 05 nicklas 273     finally
874 05 Jul 05 nicklas 274     {
874 05 Jul 05 nicklas 275       if (dc != null) dc.close();
874 05 Jul 05 nicklas 276     }
874 05 Jul 05 nicklas 277   }
874 05 Jul 05 nicklas 278
874 05 Jul 05 nicklas 279   static void test_delete_event_type(int eventTypeId)
874 05 Jul 05 nicklas 280   {
874 05 Jul 05 nicklas 281     if (eventTypeId == 0) return;
874 05 Jul 05 nicklas 282     DbControl dc = null;
874 05 Jul 05 nicklas 283     try
874 05 Jul 05 nicklas 284     {
874 05 Jul 05 nicklas 285       dc = TestUtil.getDbControl();
874 05 Jul 05 nicklas 286       PlateEventType pet = PlateEventType.getById(dc, eventTypeId);
874 05 Jul 05 nicklas 287       dc.deleteItem(pet);
874 05 Jul 05 nicklas 288       dc.commit();
874 05 Jul 05 nicklas 289       write("--Delete event type OK");
874 05 Jul 05 nicklas 290     }
874 05 Jul 05 nicklas 291     catch (Exception ex)
874 05 Jul 05 nicklas 292     {
874 05 Jul 05 nicklas 293       write("--Delete event type FAILED");
874 05 Jul 05 nicklas 294       ex.printStackTrace();
874 05 Jul 05 nicklas 295       ok = false;
874 05 Jul 05 nicklas 296     }
874 05 Jul 05 nicklas 297     finally
874 05 Jul 05 nicklas 298     {
874 05 Jul 05 nicklas 299       if (dc != null) dc.close();
874 05 Jul 05 nicklas 300     }
874 05 Jul 05 nicklas 301   }
874 05 Jul 05 nicklas 302
874 05 Jul 05 nicklas 303 }