src/test/TestUserDefaultSetting.java

Code
Comments
Other
Rev Date Author Line
339 01 Apr 05 nicklas 1 /*
339 01 Apr 05 nicklas 2   $Id$
339 01 Apr 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
339 01 Apr 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/
339 01 Apr 05 nicklas 9
339 01 Apr 05 nicklas 10   BASE is free software; you can redistribute it and/or
339 01 Apr 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
339 01 Apr 05 nicklas 13   of the License, or (at your option) any later version.
339 01 Apr 05 nicklas 14
339 01 Apr 05 nicklas 15   BASE is distributed in the hope that it will be useful,
339 01 Apr 05 nicklas 16   but WITHOUT ANY WARRANTY; without even the implied warranty of
339 01 Apr 05 nicklas 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
339 01 Apr 05 nicklas 18   GNU General Public License for more details.
339 01 Apr 05 nicklas 19
339 01 Apr 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/>.
339 01 Apr 05 nicklas 22 */
5340 10 May 10 nicklas 23 import java.util.Set;
5340 10 May 10 nicklas 24
339 01 Apr 05 nicklas 25 import net.sf.basedb.core.*;
339 01 Apr 05 nicklas 26
339 01 Apr 05 nicklas 27 public class TestUserDefaultSetting
339 01 Apr 05 nicklas 28 {
339 01 Apr 05 nicklas 29
339 01 Apr 05 nicklas 30   static boolean ok = true;
339 01 Apr 05 nicklas 31
339 01 Apr 05 nicklas 32   public static void main(String[] args)
339 01 Apr 05 nicklas 33   {
339 01 Apr 05 nicklas 34     TestUtil.checkArgs(args);
339 01 Apr 05 nicklas 35     TestUtil.begin();
339 01 Apr 05 nicklas 36     test_all();
339 01 Apr 05 nicklas 37     TestUtil.stop();
339 01 Apr 05 nicklas 38   }
339 01 Apr 05 nicklas 39
342 01 Apr 05 nicklas 40   static boolean test_all()
339 01 Apr 05 nicklas 41   {
339 01 Apr 05 nicklas 42     write("++Testing user default setting");
339 01 Apr 05 nicklas 43     write_header();
339 01 Apr 05 nicklas 44     // Standard tests: create, load, list
349 01 Apr 05 nicklas 45     int userId = TestUser.test_create(true);
349 01 Apr 05 nicklas 46     int id = test_create(userId, "fontsize", "9");
339 01 Apr 05 nicklas 47     test_duplicate(id);
339 01 Apr 05 nicklas 48     test_load(id);
354 04 Apr 05 nicklas 49     test_list(userId, -1);
339 01 Apr 05 nicklas 50
339 01 Apr 05 nicklas 51     // Extra tests:
339 01 Apr 05 nicklas 52
339 01 Apr 05 nicklas 53     // Standard test: Delete
1529 27 Oct 05 nicklas 54     if (TestUtil.waitBeforeDelete()) TestUtil.waitForEnter();
339 01 Apr 05 nicklas 55     test_delete(id);
349 01 Apr 05 nicklas 56     TestUser.test_delete(userId);
339 01 Apr 05 nicklas 57     write("++Testing user default setting "+(ok ? "OK" : "Failed")+"\n");
342 01 Apr 05 nicklas 58     return ok;
339 01 Apr 05 nicklas 59   }
339 01 Apr 05 nicklas 60
349 01 Apr 05 nicklas 61   static int test_create(int userId, String name, String value)
339 01 Apr 05 nicklas 62   {
354 04 Apr 05 nicklas 63     if (userId == 0) return 0;
339 01 Apr 05 nicklas 64     int id = 0;
339 01 Apr 05 nicklas 65     DbControl dc = null;
339 01 Apr 05 nicklas 66     try
339 01 Apr 05 nicklas 67     {
339 01 Apr 05 nicklas 68       dc = TestUtil.getDbControl();
349 01 Apr 05 nicklas 69       User user = User.getById(dc, userId);
349 01 Apr 05 nicklas 70       UserDefaultSetting uds = user.newDefaultSetting(name, value);
339 01 Apr 05 nicklas 71       dc.saveItem(uds);
339 01 Apr 05 nicklas 72       dc.commit();
339 01 Apr 05 nicklas 73       id = uds.getId();
806 22 Jun 05 nicklas 74       dc = TestUtil.getDbControl();
5060 19 Aug 09 nicklas 75       dc.reattachItem(uds, false);
339 01 Apr 05 nicklas 76       write_item(0, uds);
339 01 Apr 05 nicklas 77       write("--Create user default setting OK");
339 01 Apr 05 nicklas 78     }
358 04 Apr 05 nicklas 79     catch (Throwable ex)
339 01 Apr 05 nicklas 80     {
339 01 Apr 05 nicklas 81       write("--Create user default setting FAILED");
339 01 Apr 05 nicklas 82       ex.printStackTrace();
339 01 Apr 05 nicklas 83       ok = false;
339 01 Apr 05 nicklas 84     }
339 01 Apr 05 nicklas 85     finally
339 01 Apr 05 nicklas 86     {
339 01 Apr 05 nicklas 87       if (dc != null) dc.close();
339 01 Apr 05 nicklas 88     }
339 01 Apr 05 nicklas 89     return id;
339 01 Apr 05 nicklas 90   }
339 01 Apr 05 nicklas 91
339 01 Apr 05 nicklas 92   static void test_load(int id)
339 01 Apr 05 nicklas 93   {
339 01 Apr 05 nicklas 94     if (id == 0) return;
339 01 Apr 05 nicklas 95     DbControl dc = null;
339 01 Apr 05 nicklas 96     try
339 01 Apr 05 nicklas 97     {
339 01 Apr 05 nicklas 98       dc = TestUtil.getDbControl();
339 01 Apr 05 nicklas 99       UserDefaultSetting uds = UserDefaultSetting.getById(dc, id);
339 01 Apr 05 nicklas 100       write_item(0, uds);
339 01 Apr 05 nicklas 101       write("--Load user default setting OK");
339 01 Apr 05 nicklas 102     }
358 04 Apr 05 nicklas 103     catch (Throwable ex)
339 01 Apr 05 nicklas 104     {
339 01 Apr 05 nicklas 105       write("--Load user default setting FAILED");
339 01 Apr 05 nicklas 106       ex.printStackTrace();
339 01 Apr 05 nicklas 107       ok = false;
339 01 Apr 05 nicklas 108     }
339 01 Apr 05 nicklas 109     finally
339 01 Apr 05 nicklas 110     {
339 01 Apr 05 nicklas 111       if (dc != null) dc.close();
339 01 Apr 05 nicklas 112     }
339 01 Apr 05 nicklas 113   }
339 01 Apr 05 nicklas 114
354 04 Apr 05 nicklas 115   static void test_list(int userId, int expectedResults)
339 01 Apr 05 nicklas 116   {
339 01 Apr 05 nicklas 117     DbControl dc = null;
339 01 Apr 05 nicklas 118     try
339 01 Apr 05 nicklas 119     {
339 01 Apr 05 nicklas 120       dc = TestUtil.getDbControl();
354 04 Apr 05 nicklas 121       User user = User.getById(dc, userId);
1418 07 Oct 05 nicklas 122       ItemResultList<UserDefaultSetting> l = UserDefaultSetting.getQuery(user).list(dc);
339 01 Apr 05 nicklas 123       for (int i = 0; i<l.size(); i++)
339 01 Apr 05 nicklas 124       {
339 01 Apr 05 nicklas 125         write_item(i, l.get(i));
339 01 Apr 05 nicklas 126       }
339 01 Apr 05 nicklas 127       if (expectedResults >= 0 && expectedResults != l.size())
339 01 Apr 05 nicklas 128       {
339 01 Apr 05 nicklas 129         throw new BaseException("Expected "+expectedResults+" results, not "+l.size());
339 01 Apr 05 nicklas 130       }
339 01 Apr 05 nicklas 131       write("--List user default settings OK ("+l.size()+")");
339 01 Apr 05 nicklas 132     }
358 04 Apr 05 nicklas 133     catch (Throwable ex)
339 01 Apr 05 nicklas 134     {
339 01 Apr 05 nicklas 135       write("--List user default settings FAILED");
339 01 Apr 05 nicklas 136       ex.printStackTrace();
339 01 Apr 05 nicklas 137       ok = false;
339 01 Apr 05 nicklas 138     }
339 01 Apr 05 nicklas 139     finally
339 01 Apr 05 nicklas 140     {
339 01 Apr 05 nicklas 141       if (dc != null) dc.close();
339 01 Apr 05 nicklas 142     }
339 01 Apr 05 nicklas 143   }
339 01 Apr 05 nicklas 144
339 01 Apr 05 nicklas 145   static void test_delete(int id)
339 01 Apr 05 nicklas 146   {
339 01 Apr 05 nicklas 147     if (id == 0) return;
339 01 Apr 05 nicklas 148     DbControl dc = null;
339 01 Apr 05 nicklas 149     try
339 01 Apr 05 nicklas 150     {
339 01 Apr 05 nicklas 151       dc = TestUtil.getDbControl();
339 01 Apr 05 nicklas 152       UserDefaultSetting uds = UserDefaultSetting.getById(dc, id);
339 01 Apr 05 nicklas 153       dc.deleteItem(uds);
5340 10 May 10 nicklas 154       Set<ItemProxy> using = uds.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(uds + " is used by " + using);
5340 10 May 10 nicklas 158       }
339 01 Apr 05 nicklas 159       dc.commit();
339 01 Apr 05 nicklas 160       write("--Delete user default setting OK");
339 01 Apr 05 nicklas 161     }
358 04 Apr 05 nicklas 162     catch (Throwable ex)
339 01 Apr 05 nicklas 163     {
339 01 Apr 05 nicklas 164       write("--Delete user default setting FAILED");
339 01 Apr 05 nicklas 165       ex.printStackTrace();
339 01 Apr 05 nicklas 166       ok = false;
339 01 Apr 05 nicklas 167     }
339 01 Apr 05 nicklas 168     finally
339 01 Apr 05 nicklas 169     {
339 01 Apr 05 nicklas 170       if (dc != null) dc.close();
339 01 Apr 05 nicklas 171     }
339 01 Apr 05 nicklas 172   }
339 01 Apr 05 nicklas 173
339 01 Apr 05 nicklas 174   static void write_header()
339 01 Apr 05 nicklas 175   {
339 01 Apr 05 nicklas 176     if (!TestUtil.getSilent())
339 01 Apr 05 nicklas 177     {
339 01 Apr 05 nicklas 178       write("   \tID \tName\tValue\tUser");
339 01 Apr 05 nicklas 179       write("-- \t-- \t----\t-----\t----");
339 01 Apr 05 nicklas 180     }
339 01 Apr 05 nicklas 181   }
339 01 Apr 05 nicklas 182   static void write_item(int i, UserDefaultSetting uds)
339 01 Apr 05 nicklas 183     throws BaseException
339 01 Apr 05 nicklas 184   {
339 01 Apr 05 nicklas 185     if (!TestUtil.getSilent()) System.out.println(i+":\t"+uds.getId()+"\t"+uds.getName()+"\t"+
339 01 Apr 05 nicklas 186       uds.getValue()+"\t"+uds.getUser());
339 01 Apr 05 nicklas 187   }
339 01 Apr 05 nicklas 188   static void write(String message)
339 01 Apr 05 nicklas 189   {
339 01 Apr 05 nicklas 190     System.out.println(message);
339 01 Apr 05 nicklas 191   }
339 01 Apr 05 nicklas 192
339 01 Apr 05 nicklas 193   static void test_duplicate(int id)
339 01 Apr 05 nicklas 194   {
339 01 Apr 05 nicklas 195     if (id == 0) return;
339 01 Apr 05 nicklas 196     DbControl dc = null;
339 01 Apr 05 nicklas 197     try
339 01 Apr 05 nicklas 198     {
339 01 Apr 05 nicklas 199       dc = TestUtil.getDbControl();
339 01 Apr 05 nicklas 200       UserDefaultSetting uds = UserDefaultSetting.getById(dc, id);
349 01 Apr 05 nicklas 201       User user = uds.getUser();
349 01 Apr 05 nicklas 202       UserDefaultSetting duplicate = user.newDefaultSetting(uds.getName(), uds.getValue());
339 01 Apr 05 nicklas 203       dc.saveItem(duplicate);
339 01 Apr 05 nicklas 204       dc.commit();
339 01 Apr 05 nicklas 205       dc.deleteItem(duplicate);
339 01 Apr 05 nicklas 206       dc.commit();
1500 21 Oct 05 nicklas 207       throw new BaseException("Expected DatabaseException");
339 01 Apr 05 nicklas 208     }
1500 21 Oct 05 nicklas 209     catch (DatabaseException ex)
339 01 Apr 05 nicklas 210     {
339 01 Apr 05 nicklas 211       write("--Duplicate user default setting OK");
339 01 Apr 05 nicklas 212     }
358 04 Apr 05 nicklas 213     catch (Throwable ex)
339 01 Apr 05 nicklas 214     {
339 01 Apr 05 nicklas 215       write("--Duplicate user default setting FAILED");
339 01 Apr 05 nicklas 216       ex.printStackTrace();
339 01 Apr 05 nicklas 217       ok = false;
339 01 Apr 05 nicklas 218     }
339 01 Apr 05 nicklas 219     finally
339 01 Apr 05 nicklas 220     {
339 01 Apr 05 nicklas 221       if (dc != null) dc.close();
339 01 Apr 05 nicklas 222     }
339 01 Apr 05 nicklas 223   }
339 01 Apr 05 nicklas 224
339 01 Apr 05 nicklas 225 }
339 01 Apr 05 nicklas 226
339 01 Apr 05 nicklas 227