src/test/TestExtraValueType.java

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