package net.sourceforge.pain.db;
import junit.framework.*;
import java.io.*;
import net.sourceforge.pain.db.data.*;
/**
* User: fmike * Date: Aug 24, 2003 * Time: 11:15:30 PM
*/
public final class AllTypesGetSetTest extends TestCase {
private PainDB db;
public AllTypesGetSetTest() {
super("AllTypesGetSetTest");
}
protected void setUp() throws Exception {
db = new PainDB(getName() + ".db");
db.ALLOW_PLAIN_WRITE = true; // allow work without transactions
}
protected void tearDown() throws Exception {
if (db != null) {
File file = new File(db.getDbFileName());
db.close();
db = null;
file.delete();
}
}
public void testBOOLEAN() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals(false, obj.getBOOLEAN());
obj.setBOOLEAN(true);
assertEquals(true, obj.getBOOLEAN());
obj.setBOOLEAN(false);
assertEquals(false, obj.getBOOLEAN());
}
public void testBYTE() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals((byte) 0, obj.getBYTE());
obj.setBYTE((byte) 100);
assertEquals((byte) 100, obj.getBYTE());
obj.setBYTE((byte) -100);
assertEquals((byte) -100, obj.getBYTE());
}
public void testCHAR() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals((char) 0, obj.getCHAR());
obj.setCHAR('\t');
assertEquals('\t', obj.getCHAR());
obj.setCHAR('x');
assertEquals('x', obj.getCHAR());
}
public void testDOUBLE() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals(0D, obj.getDOUBLE(), 0D);
obj.setDOUBLE(Math.PI);
assertEquals(Math.PI, obj.getDOUBLE(), 0D);
obj.setDOUBLE(Math.E);
assertEquals(Math.E, obj.getDOUBLE(), 0D);
obj.setDOUBLE(Double.NaN);
assertTrue(Double.isNaN(obj.getDOUBLE()));
obj.setDOUBLE(Double.POSITIVE_INFINITY);
assertEquals(Double.POSITIVE_INFINITY, obj.getDOUBLE(), 0D);
obj.setDOUBLE(Double.NEGATIVE_INFINITY);
assertEquals(Double.NEGATIVE_INFINITY, obj.getDOUBLE(), 0D);
}
public void testFLOAT() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals(0F, obj.getFLOAT(), 0F);
obj.setFLOAT((float) Math.E);
assertEquals((float) Math.E, obj.getFLOAT(), 0F);
obj.setFLOAT((float) Math.PI);
assertEquals((float) Math.PI, obj.getFLOAT(), 0F);
obj.setFLOAT(Float.NaN);
assertTrue(Float.isNaN(obj.getFLOAT()));
obj.setFLOAT(Float.POSITIVE_INFINITY);
assertEquals(Float.POSITIVE_INFINITY, obj.getFLOAT(), 0F);
obj.setFLOAT(Float.NEGATIVE_INFINITY);
assertEquals(Float.NEGATIVE_INFINITY, obj.getFLOAT(), 0F);
}
public void testINT() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals(0, obj.getINT());
obj.setINT(Integer.MAX_VALUE);
assertEquals(Integer.MAX_VALUE, obj.getINT());
obj.setINT(0);
assertEquals(0, obj.getINT());
}
public void testLONG() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals(0L, obj.getLONG());
obj.setLONG(Long.MIN_VALUE);
assertEquals(Long.MIN_VALUE, obj.getLONG());
obj.setLONG(-1L);
assertEquals(-1L, obj.getLONG());
}
public void testSHORT() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertEquals((short) 0, obj.getSHORT());
obj.setSHORT(Short.MIN_VALUE);
assertEquals(Short.MIN_VALUE, obj.getSHORT());
obj.setSHORT((short) 1024);
assertEquals((short) 1024, obj.getSHORT());
}
public void testSTRING() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getSTRING());
final String v1 = "some test string 1";
obj.setSTRING(v1);
assertEquals(v1, obj.getSTRING());
final String v2 = "some test string 2";
obj.setSTRING(v2);
assertEquals(v2, obj.getSTRING());
obj.setSTRING(null);
assertNull(obj.getSTRING());
}
public void testREFERENCE() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getREFERENCE());
obj.setREFERENCE(obj);
assertEquals(obj, obj.getREFERENCE());
obj.setREFERENCE(null);
assertNull(obj.getREFERENCE());
}
public void testARRAY_OF_BYTE() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getARRAY_OF_BYTE());
byte[] v1 = new byte[]{1, 2, 3, 4};
obj.setARRAY_OF_BYTE(v1);
assertEquals(v1, obj.getARRAY_OF_BYTE());
assertTrue(v1 == obj.getARRAY_OF_BYTE());
obj.setARRAY_OF_BYTE(null);
assertNull(obj.getARRAY_OF_BYTE());
}
public void testARRAY_OF_CHAR() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getARRAY_OF_CHAR());
char[] v1 = new char[]{'H', 'e', 'l', 'l', 'o', '!'};
obj.setARRAY_OF_CHAR(v1);
assertEquals(v1, obj.getARRAY_OF_CHAR());
assertTrue(v1 == obj.getARRAY_OF_CHAR());
obj.setARRAY_OF_CHAR(null);
assertNull(obj.getARRAY_OF_CHAR());
}
public void testARRAY_OF_INT() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getARRAY_OF_INT());
int[] v1 = new int[]{1, 2, 3, 4};
obj.setARRAY_OF_INT(v1);
assertEquals(v1, obj.getARRAY_OF_INT());
assertTrue(v1 == obj.getARRAY_OF_INT());
obj.setARRAY_OF_INT(null);
assertNull(obj.getARRAY_OF_INT());
}
public void testARRAY_OF_STRING() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
assertNull(obj.getARRAY_OF_STRING());
String[] v1 = new String[]{"1", null, "3", "456789"};
obj.setARRAY_OF_STRING(v1);
assertEquals(v1, obj.getARRAY_OF_STRING());
assertTrue(v1 == obj.getARRAY_OF_STRING());
obj.setARRAY_OF_STRING(null);
assertNull(obj.getARRAY_OF_STRING());
}
public void testLINKED_LIST() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbLinkedList list = obj.getLINKED_LIST();
assertNotNull(list);
assertEquals(0, list.size());
list.add(obj);
assertEquals(1, list.size());
list.add(obj);
assertEquals(2, list.size());
assertTrue(list.get(1) == obj);
assertEquals(0, list.indexOf(obj));
list.remove(obj);
assertEquals(1, list.size());
list.remove(obj);
assertEquals(0, list.size());
list.add(obj);
list.add(obj);
list.addAll(list);
assertEquals(4, list.size());
list.retainAll(list);
assertEquals(4, list.size());
assertTrue(list.get(3) == obj);
assertTrue(list.contains(obj));
assertFalse(list.contains(list));
list.clear();
assertTrue(list.isEmpty());
}
public void testARRAY_LIST() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbArrayList list = obj.getARRAY_LIST();
assertNotNull(list);
assertEquals(0, list.size());
list.add(obj);
assertEquals(1, list.size());
list.add(obj);
assertEquals(2, list.size());
assertTrue(list.get(1) == obj);
assertEquals(0, list.indexOf(obj));
list.remove(obj);
assertEquals(1, list.size());
list.remove(obj);
assertEquals(0, list.size());
list.add(obj);
list.add(obj);
list.addAll(list);
assertEquals(4, list.size());
assertTrue(list.get(3) == obj);
list.retainAll(list);
assertEquals(4, list.size());
assertTrue(list.contains(obj));
assertFalse(list.contains(list));
list.clear();
assertTrue(list.isEmpty());
}
public void testINT_KEY_MAP() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbIntKeyMap map = obj.getINT_KEY_MAP();
assertNotNull(map);
assertEquals(0, map.size());
map.put(1, obj);
assertEquals(1, map.size());
assertTrue(obj == map.get(1));
assertNull(map.get(2));
assertTrue(map.put(1, obj) == obj);
assertEquals(1, map.size());
map.put(2, obj);
assertEquals(2, map.size());
assertTrue(map.containsValue(obj));
assertTrue(map.containsKey(2));
assertFalse(map.containsKey(3));
assertTrue(obj == map.remove(1));
assertEquals(1, map.size());
map.clear();
assertEquals(0, map.size());
}
public void testSTRING_KEY_MAP() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbStringKeyMap map = obj.getSTRING_KEY_MAP();
assertNotNull(map);
assertEquals(0, map.size());
final String key1 = "111";
final String key2 = "222";
final String key3 = "333";
map.put(key1, obj);
assertEquals(1, map.size());
assertTrue(obj == map.get(key1));
assertNull(map.get(key2));
assertTrue(map.put(key1, obj) == obj);
assertEquals(1, map.size());
map.put(key2, obj);
assertEquals(2, map.size());
assertTrue(map.containsValue(obj));
assertTrue(map.containsKey(key2));
assertFalse(map.containsKey(key3));
assertTrue(obj == map.remove(key1));
assertEquals(1, map.size());
map.clear();
assertEquals(0, map.size());
}
public void testREFERENCE_SET() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbReferenceSet set = obj.getREFERENCE_SET();
assertNotNull(set);
assertEquals(0, set.size());
set.add(obj);
assertEquals(1, set.size());
set.add(obj);
assertEquals(1, set.size());
set.remove(obj);
assertEquals(0, set.size());
set.add(obj);
set.add(obj);
// set.addAll(set); unsupported -> todo
assertEquals(1, set.size());
// set.retainAll(set); unsupported -> todo
// assertEquals(1, set.size());
assertTrue(set.contains(obj));
ClassCastException e = null;
try {
set.contains(set);
} catch (ClassCastException ex) {
e = ex;
}
assertNotNull(e);
set.clear();
assertTrue(set.isEmpty());
}
public void testSTRING_SET() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbStringSet set = obj.getSTRING_SET();
assertNotNull(set);
assertEquals(0, set.size());
final String obj1 = "lalala";
set.add(obj1);
assertEquals(1, set.size());
set.add(obj1);
assertEquals(1, set.size());
set.remove(obj1);
assertEquals(0, set.size());
set.add(obj1);
set.add(obj1);
// set.addAll(set); unsupported -> todo
assertEquals(1, set.size());
// set.retainAll(set); unsupported -> todo
// assertEquals(1, set.size());
assertTrue(set.contains(obj1));
assertFalse(set.contains(set));
set.clear();
assertTrue(set.isEmpty());
}
public void testSTRING_MAP() {
AllFieldTypesObject obj = new AllFieldTypesObject(db);
DbStringMap map = obj.getSTRING_MAP();
assertNotNull(map);
assertEquals(0, map.size());
final String key1 = "key1";
final String obj1 = "lalala";
map.put(key1, obj1);
assertEquals(1, map.size());
map.put(key1, obj1);
assertEquals(1, map.size());
map.remove(key1);
assertEquals(0, map.size());
map.put(key1, obj1);
map.put(key1, obj1);
// map.addAll(map); unsupported -> todo
assertEquals(1, map.size());
// map.retainAll(map); unsupported -> todo
// assertEquals(1, map.size());
assertTrue(map.containsKey(key1));
assertTrue(map.containsValue(obj1));
map.clear();
assertTrue(map.isEmpty());
}
}