src/test/TestBioPlateType.java

Code
Comments
Other
Rev Date Author Line
5260 04 Mar 10 nicklas 1 import java.util.Date;
5340 10 May 10 nicklas 2 import java.util.Set;
5260 04 Mar 10 nicklas 3
5260 04 Mar 10 nicklas 4 import net.sf.basedb.core.BaseException;
5260 04 Mar 10 nicklas 5 import net.sf.basedb.core.BioPlateType;
5456 28 Oct 10 nicklas 6 import net.sf.basedb.core.BioWell;
5260 04 Mar 10 nicklas 7 import net.sf.basedb.core.DbControl;
5260 04 Mar 10 nicklas 8 import net.sf.basedb.core.Item;
5340 10 May 10 nicklas 9 import net.sf.basedb.core.ItemProxy;
5260 04 Mar 10 nicklas 10 import net.sf.basedb.core.ItemResultList;
5260 04 Mar 10 nicklas 11 import net.sf.basedb.core.Permission;
5260 04 Mar 10 nicklas 12
5260 04 Mar 10 nicklas 13 /*
5260 04 Mar 10 nicklas 14   $Id $
5260 04 Mar 10 nicklas 15
5260 04 Mar 10 nicklas 16   Copyright (C) 2010 Nicklas Nordborg
5260 04 Mar 10 nicklas 17
5260 04 Mar 10 nicklas 18   This file is part of BASE - BioArray Software Environment.
5260 04 Mar 10 nicklas 19   Available at http://base.thep.lu.se/
5260 04 Mar 10 nicklas 20
5260 04 Mar 10 nicklas 21   BASE is free software; you can redistribute it and/or
5260 04 Mar 10 nicklas 22   modify it under the terms of the GNU General Public License
5260 04 Mar 10 nicklas 23   as published by the Free Software Foundation; either version 3
5260 04 Mar 10 nicklas 24   of the License, or (at your option) any later version.
5260 04 Mar 10 nicklas 25
5260 04 Mar 10 nicklas 26   BASE is distributed in the hope that it will be useful,
5260 04 Mar 10 nicklas 27   but WITHOUT ANY WARRANTY; without even the implied warranty of
5260 04 Mar 10 nicklas 28   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5260 04 Mar 10 nicklas 29   GNU General Public License for more details.
5260 04 Mar 10 nicklas 30
5260 04 Mar 10 nicklas 31   You should have received a copy of the GNU General Public License
5260 04 Mar 10 nicklas 32   along with BASE. If not, see <http://www.gnu.org/licenses/>.
5260 04 Mar 10 nicklas 33 */
5260 04 Mar 10 nicklas 34
5260 04 Mar 10 nicklas 35 public class TestBioPlateType
5260 04 Mar 10 nicklas 36 {
5260 04 Mar 10 nicklas 37
5260 04 Mar 10 nicklas 38   static boolean ok = true;
5260 04 Mar 10 nicklas 39   public static void main(String[] args)
5260 04 Mar 10 nicklas 40   {
5260 04 Mar 10 nicklas 41     TestUtil.checkArgs(args);
5260 04 Mar 10 nicklas 42     TestUtil.begin();
5260 04 Mar 10 nicklas 43     ok = test_all();
5260 04 Mar 10 nicklas 44     TestUtil.stop();
5260 04 Mar 10 nicklas 45   }
5260 04 Mar 10 nicklas 46
5260 04 Mar 10 nicklas 47   static boolean test_all()
5260 04 Mar 10 nicklas 48   {
5260 04 Mar 10 nicklas 49     write("++Testing bioplate types");
5260 04 Mar 10 nicklas 50     write_header();
5260 04 Mar 10 nicklas 51     // Standard tests: create, load, list
5456 28 Oct 10 nicklas 52     int id = test_create("Free for all", null, BioWell.LockMode.UNLOCKED);
5456 28 Oct 10 nicklas 53     int id2 = test_create("Locked samples", Item.SAMPLE, BioWell.LockMode.LOCKED_AFTER_ADD);
5456 28 Oct 10 nicklas 54     int id3 = test_create("Moveable samples", Item.SAMPLE, BioWell.LockMode.LOCKED_AFTER_MOVE);
5260 04 Mar 10 nicklas 55     test_load(id);
5260 04 Mar 10 nicklas 56     test_list(-1);
5260 04 Mar 10 nicklas 57
5260 04 Mar 10 nicklas 58     // Standard test: Delete
5260 04 Mar 10 nicklas 59     if (TestUtil.waitBeforeDelete()) TestUtil.waitForEnter();
5260 04 Mar 10 nicklas 60     test_delete(id);
5260 04 Mar 10 nicklas 61     test_delete(id2);
5456 28 Oct 10 nicklas 62     test_delete(id3);
5260 04 Mar 10 nicklas 63     write("++Testing bioplate types "+(ok ? "OK" : "Failed")+"\n");
5260 04 Mar 10 nicklas 64     return ok;
5260 04 Mar 10 nicklas 65   }
5260 04 Mar 10 nicklas 66
5456 28 Oct 10 nicklas 67   static int test_create(String name, Item bioMaterialType, BioWell.LockMode lockMode)
5260 04 Mar 10 nicklas 68   {
5260 04 Mar 10 nicklas 69     if (!TestUtil.hasPermission(Permission.CREATE, Item.BIOPLATETYPE)) return 0;
5260 04 Mar 10 nicklas 70     int id = 0;
5260 04 Mar 10 nicklas 71     DbControl dc = null;
5260 04 Mar 10 nicklas 72     try
5260 04 Mar 10 nicklas 73     {
5260 04 Mar 10 nicklas 74       dc = TestUtil.getDbControl();
5260 04 Mar 10 nicklas 75       BioPlateType pt = BioPlateType.getNew(dc);
5260 04 Mar 10 nicklas 76       pt.setName(name);
5260 04 Mar 10 nicklas 77       pt.setDescription("Added at "+new Date());
5260 04 Mar 10 nicklas 78       pt.setBioMaterialType(bioMaterialType);
5456 28 Oct 10 nicklas 79       pt.setLockMode(lockMode);
5260 04 Mar 10 nicklas 80       dc.saveItem(pt);
5260 04 Mar 10 nicklas 81       dc.commit();
5260 04 Mar 10 nicklas 82       id = pt.getId();
5260 04 Mar 10 nicklas 83       write_item(0, pt);
5260 04 Mar 10 nicklas 84       write("--Create bioplate type OK");
5260 04 Mar 10 nicklas 85     }
5260 04 Mar 10 nicklas 86     catch (Throwable ex)
5260 04 Mar 10 nicklas 87     {
5260 04 Mar 10 nicklas 88       write("--Create bioplate type FAILED");
5260 04 Mar 10 nicklas 89       ex.printStackTrace();
5260 04 Mar 10 nicklas 90       ok = false;
5260 04 Mar 10 nicklas 91     }
5260 04 Mar 10 nicklas 92     finally
5260 04 Mar 10 nicklas 93     {
5260 04 Mar 10 nicklas 94       if (dc != null) dc.close();
5260 04 Mar 10 nicklas 95     }
5260 04 Mar 10 nicklas 96     return id;
5260 04 Mar 10 nicklas 97   }
5260 04 Mar 10 nicklas 98
5260 04 Mar 10 nicklas 99   static void test_load(int id)
5260 04 Mar 10 nicklas 100   {
5260 04 Mar 10 nicklas 101     if (id == 0) return;
5260 04 Mar 10 nicklas 102     DbControl dc = null;
5260 04 Mar 10 nicklas 103     try
5260 04 Mar 10 nicklas 104     {
5260 04 Mar 10 nicklas 105       dc = TestUtil.getDbControl();
5260 04 Mar 10 nicklas 106       BioPlateType pt = BioPlateType.getById(dc, id);
5260 04 Mar 10 nicklas 107       write_item(0, pt);
5260 04 Mar 10 nicklas 108       write("--Load bioplate type OK");
5260 04 Mar 10 nicklas 109     }
5260 04 Mar 10 nicklas 110     catch (Throwable ex)
5260 04 Mar 10 nicklas 111     {
5260 04 Mar 10 nicklas 112       write("--Load bioplate type FAILED");
5260 04 Mar 10 nicklas 113       ex.printStackTrace();
5260 04 Mar 10 nicklas 114       ok = false;
5260 04 Mar 10 nicklas 115     }
5260 04 Mar 10 nicklas 116     finally
5260 04 Mar 10 nicklas 117     {
5260 04 Mar 10 nicklas 118       if (dc != null) dc.close();
5260 04 Mar 10 nicklas 119     }
5260 04 Mar 10 nicklas 120   }
5260 04 Mar 10 nicklas 121
5260 04 Mar 10 nicklas 122
5260 04 Mar 10 nicklas 123   static void test_list(int expectedResults)
5260 04 Mar 10 nicklas 124   {
5260 04 Mar 10 nicklas 125     DbControl dc = null;
5260 04 Mar 10 nicklas 126     try
5260 04 Mar 10 nicklas 127     {
5260 04 Mar 10 nicklas 128       dc = TestUtil.getDbControl();
5260 04 Mar 10 nicklas 129       ItemResultList<BioPlateType> l = BioPlateType.getQuery().list(dc);
5260 04 Mar 10 nicklas 130       for (int i = 0; i<l.size(); i++)
5260 04 Mar 10 nicklas 131       {
5260 04 Mar 10 nicklas 132         write_item(i, l.get(i));
5260 04 Mar 10 nicklas 133       }
5260 04 Mar 10 nicklas 134       if (expectedResults >= 0 && expectedResults != l.size())
5260 04 Mar 10 nicklas 135       {
5260 04 Mar 10 nicklas 136         throw new BaseException("Expected "+expectedResults+" results, not "+l.size());
5260 04 Mar 10 nicklas 137       }
5260 04 Mar 10 nicklas 138       write("--List bioplate types OK ("+l.size()+")");
5260 04 Mar 10 nicklas 139     }
5260 04 Mar 10 nicklas 140     catch (Throwable ex)
5260 04 Mar 10 nicklas 141     {
5260 04 Mar 10 nicklas 142       write("--List bioplate types FAILED");
5260 04 Mar 10 nicklas 143       ex.printStackTrace();
5260 04 Mar 10 nicklas 144       ok = false;
5260 04 Mar 10 nicklas 145     }
5260 04 Mar 10 nicklas 146     finally
5260 04 Mar 10 nicklas 147     {
5260 04 Mar 10 nicklas 148       if (dc != null) dc.close();
5260 04 Mar 10 nicklas 149     }
5260 04 Mar 10 nicklas 150   }
5260 04 Mar 10 nicklas 151
5260 04 Mar 10 nicklas 152
5260 04 Mar 10 nicklas 153   static void test_delete(int id)
5260 04 Mar 10 nicklas 154   {
5260 04 Mar 10 nicklas 155     if (id == 0) return;
5260 04 Mar 10 nicklas 156     DbControl dc = null;
5260 04 Mar 10 nicklas 157     try
5260 04 Mar 10 nicklas 158     {
5260 04 Mar 10 nicklas 159       dc = TestUtil.getDbControl();
5260 04 Mar 10 nicklas 160       BioPlateType pt = BioPlateType.getById(dc, id);
5260 04 Mar 10 nicklas 161       dc.deleteItem(pt);
5340 10 May 10 nicklas 162       Set<ItemProxy> using = pt.getUsingItems();
5340 10 May 10 nicklas 163       if (using.size() > 0) 
5340 10 May 10 nicklas 164       {
5340 10 May 10 nicklas 165          throw new BaseException(pt + " is used by " + using);
5340 10 May 10 nicklas 166       }
5260 04 Mar 10 nicklas 167       dc.commit();
5260 04 Mar 10 nicklas 168       write("--Delete bioplate type OK");
5260 04 Mar 10 nicklas 169     }
5260 04 Mar 10 nicklas 170     catch (Throwable ex)
5260 04 Mar 10 nicklas 171     {
5260 04 Mar 10 nicklas 172       write("--Delete bioplate type FAILED");
5260 04 Mar 10 nicklas 173       ex.printStackTrace();
5260 04 Mar 10 nicklas 174       ok = false;
5260 04 Mar 10 nicklas 175     }
5260 04 Mar 10 nicklas 176     finally
5260 04 Mar 10 nicklas 177     {
5260 04 Mar 10 nicklas 178       if (dc != null) dc.close();
5260 04 Mar 10 nicklas 179     }
5260 04 Mar 10 nicklas 180   }
5260 04 Mar 10 nicklas 181
5260 04 Mar 10 nicklas 182   static void write_header()
5260 04 Mar 10 nicklas 183   {
5260 04 Mar 10 nicklas 184     if (!TestUtil.getSilent())
5260 04 Mar 10 nicklas 185     {
5456 28 Oct 10 nicklas 186       System.out.println("   \tID \tName      \tDescription\tBiomaterial type\tLock mode");
5260 04 Mar 10 nicklas 187       System.out.println("-- \t-- \t--------- \t-----------\t----------------\t------------");
5260 04 Mar 10 nicklas 188     }
5260 04 Mar 10 nicklas 189   }
5260 04 Mar 10 nicklas 190   static void write_item(int i, BioPlateType pt)
5260 04 Mar 10 nicklas 191     throws BaseException
5260 04 Mar 10 nicklas 192   {
5260 04 Mar 10 nicklas 193     if (!TestUtil.getSilent()) System.out.println(i+":\t"+pt.getId()+"\t"+pt.getName()+"\t"+pt.getDescription()+
5456 28 Oct 10 nicklas 194       "\t"+pt.getBioMaterialType()+"\t"+pt.getLockMode());
5260 04 Mar 10 nicklas 195   }
5260 04 Mar 10 nicklas 196   static void write(String message)
5260 04 Mar 10 nicklas 197   {
5260 04 Mar 10 nicklas 198     System.out.println(message);
5260 04 Mar 10 nicklas 199   }
5260 04 Mar 10 nicklas 200
5260 04 Mar 10 nicklas 201 }