src/test/TestMimeType.java

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