001: /*
002: * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com> and
003: * JR Boyens <gnu-jrb[remove] at gmx dot net>
004: * Distributed under the terms of either:
005: * - the common development and distribution license (CDDL), v1.0; or
006: * - the GNU Lesser General Public License, v2.1 or later
007: * $Id: TestGenericQueryManagerBinary.java 3634 2007-01-08 21:42:24Z gbevin $
008: */
009: package com.uwyn.rife.database.querymanagers.generic;
010:
011: import com.uwyn.rife.database.Datasource;
012: import com.uwyn.rife.database.querymanagers.generic.beans.BinaryBean;
013: import java.util.Arrays;
014: import junit.framework.TestCase;
015:
016: public class TestGenericQueryManagerBinary extends TestCase {
017: private Datasource mDatasource = null;
018:
019: private GenericQueryManager<BinaryBean> mBinaryManager = null;
020:
021: public TestGenericQueryManagerBinary(Datasource datasource,
022: String datasourceName, String name) {
023: super (name);
024: mDatasource = datasource;
025: }
026:
027: protected void setUp() throws Exception {
028: mBinaryManager = GenericQueryManagerFactory.getInstance(
029: mDatasource, BinaryBean.class);
030:
031: int poolsize = mDatasource.getPoolsize();
032: // disabling pool for firebird
033: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
034: .getAliasedDriver())) {
035: mDatasource.setPoolsize(0);
036: }
037: try {
038: mBinaryManager.install();
039: } finally {
040: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
041: .getAliasedDriver())) {
042: mDatasource.setPoolsize(poolsize);
043: }
044: }
045: }
046:
047: protected void tearDown() throws Exception {
048: int poolsize = mDatasource.getPoolsize();
049: // disabling pool for firebird
050: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
051: .getAliasedDriver())) {
052: mDatasource.setPoolsize(0);
053: }
054: try {
055: mBinaryManager.remove();
056: } finally {
057: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
058: .getAliasedDriver())) {
059: mDatasource.setPoolsize(poolsize);
060: }
061: }
062: }
063:
064: public void testGetBaseClass() {
065: assertSame(BinaryBean.class, mBinaryManager.getBaseClass());
066: }
067:
068: public void testInstallCustomQuery() {
069: int poolsize = mDatasource.getPoolsize();
070: // disabling pool for firebird
071: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
072: .getAliasedDriver())) {
073: mDatasource.setPoolsize(0);
074: }
075: try {
076: mBinaryManager.remove();
077:
078: mBinaryManager.install(mBinaryManager
079: .getInstallTableQuery());
080: } finally {
081: if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource
082: .getAliasedDriver())) {
083: mDatasource.setPoolsize(poolsize);
084: }
085: }
086: }
087:
088: public void testSaveRestoreBinary() {
089: BinaryBean bean = new BinaryBean();
090: BinaryBean newbean = null;
091:
092: byte[] bytes1 = new byte[] { 1, 3, 5, 7, 11, 13, 17, 19, 23 };
093: bean.setTheBytes(bytes1);
094:
095: int id = mBinaryManager.save(bean);
096:
097: newbean = mBinaryManager.restore(id);
098:
099: assertTrue(newbean != null);
100: assertTrue(newbean != bean);
101: assertTrue(Arrays.equals(newbean.getTheBytes(), bean
102: .getTheBytes()));
103: assertEquals(newbean.getId(), id);
104:
105: byte[] bytes2 = new byte[] { 10, 30, 50, 70, 110 };
106: bean.setId(id);
107: bean.setTheBytes(bytes2);
108:
109: assertEquals(mBinaryManager.save(bean), id);
110: assertEquals(bean.getId(), id);
111:
112: newbean = mBinaryManager.restore(id);
113:
114: assertTrue(newbean != null);
115: assertTrue(newbean != bean);
116:
117: assertTrue(Arrays.equals(newbean.getTheBytes(), bytes2));
118:
119: byte[] bytes3 = new byte[] { 89, 22, 9, 31, 89 };
120: bean.setId(999999);
121: bean.setTheBytes(bytes3);
122:
123: assertFalse(999999 == mBinaryManager.save(bean));
124: assertEquals(bean.getId(), id + 1);
125:
126: GenericQueryManager<BinaryBean> manager_othertable = GenericQueryManagerFactory
127: .getInstance(mDatasource, BinaryBean.class,
128: "othertable");
129: manager_othertable.install();
130:
131: byte[] bytes4 = new byte[] { 79, 15, 88, 42 };
132: BinaryBean bean2 = new BinaryBean();
133: bean2.setTheBytes(bytes4);
134:
135: manager_othertable.save(bean2);
136:
137: BinaryBean bean3 = manager_othertable.restore(bean2.getId());
138:
139: assertTrue(Arrays.equals(bean3.getTheBytes(), bean2
140: .getTheBytes()));
141:
142: manager_othertable.remove();
143: }
144: }
|