/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) and * JR Boyens <gnu-jrb[remove] at gmx dot net> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestGenericQueryManagerBinary.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.database.querymanagers.generic; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.database.querymanagers.generic.beans.BinaryBean; import java.util.Arrays; import junit.framework.TestCase; public class TestGenericQueryManagerBinary extends TestCase { private Datasource mDatasource = null; private GenericQueryManager<BinaryBean> mBinaryManager = null; public TestGenericQueryManagerBinary(Datasource datasource, String datasourceName, String name) { super(name); mDatasource = datasource; } protected void setUp() throws Exception { mBinaryManager = GenericQueryManagerFactory.getInstance(mDatasource, BinaryBean.class); int poolsize = mDatasource.getPoolsize(); // disabling pool for firebird if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(0); } try { mBinaryManager.install(); } finally { if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(poolsize); } } } protected void tearDown() throws Exception { int poolsize = mDatasource.getPoolsize(); // disabling pool for firebird if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(0); } try { mBinaryManager.remove(); } finally { if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(poolsize); } } } public void testGetBaseClass() { assertSame(BinaryBean.class, mBinaryManager.getBaseClass()); } public void testInstallCustomQuery() { int poolsize = mDatasource.getPoolsize(); // disabling pool for firebird if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(0); } try { mBinaryManager.remove(); mBinaryManager.install(mBinaryManager.getInstallTableQuery()); } finally { if ("org.firebirdsql.jdbc.FBDriver".equals(mDatasource.getAliasedDriver())) { mDatasource.setPoolsize(poolsize); } } } public void testSaveRestoreBinary() { BinaryBean bean = new BinaryBean(); BinaryBean newbean = null; byte[] bytes1 = new byte[] {1, 3, 5, 7, 11, 13, 17, 19, 23}; bean.setTheBytes(bytes1); int id = mBinaryManager.save(bean); newbean = mBinaryManager.restore(id); assertTrue(newbean != null); assertTrue(newbean != bean); assertTrue(Arrays.equals(newbean.getTheBytes(), bean.getTheBytes())); assertEquals(newbean.getId(), id); byte[] bytes2 = new byte[] {10, 30, 50, 70, 110}; bean.setId(id); bean.setTheBytes(bytes2); assertEquals(mBinaryManager.save(bean), id); assertEquals(bean.getId(), id); newbean = mBinaryManager.restore(id); assertTrue(newbean != null); assertTrue(newbean != bean); assertTrue(Arrays.equals(newbean.getTheBytes(), bytes2)); byte[] bytes3 = new byte[] {89, 22, 9, 31, 89}; bean.setId(999999); bean.setTheBytes(bytes3); assertFalse(999999 == mBinaryManager.save(bean)); assertEquals(bean.getId(), id+1); GenericQueryManager<BinaryBean> manager_othertable = GenericQueryManagerFactory.getInstance(mDatasource, BinaryBean.class, "othertable"); manager_othertable.install(); byte[] bytes4 = new byte[] {79, 15, 88, 42}; BinaryBean bean2 = new BinaryBean(); bean2.setTheBytes(bytes4); manager_othertable.save(bean2); BinaryBean bean3 = manager_othertable.restore(bean2.getId()); assertTrue(Arrays.equals(bean3.getTheBytes(), bean2.getTheBytes())); manager_othertable.remove(); } }