More Refactoring and added delete TC
This commit is contained in:
parent
5b15515432
commit
f9dc882c1c
6 changed files with 456 additions and 263 deletions
117
test/zutil/db/bean/DBBeanDeleteTest.java
Executable file
117
test/zutil/db/bean/DBBeanDeleteTest.java
Executable file
|
|
@ -0,0 +1,117 @@
|
|||
package zutil.db.bean;
|
||||
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.CompactLogFormatter;
|
||||
import zutil.log.LogUtil;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import static junit.framework.TestCase.assertNull;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static zutil.db.bean.DBBeanTestBase.*;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class DBBeanDeleteTest {
|
||||
|
||||
private DBConnection db = new DBConnection(DBConnection.DBMS.SQLite, ":memory:");
|
||||
public DBBeanDeleteTest() throws Exception {}
|
||||
|
||||
@BeforeClass
|
||||
public static void init(){
|
||||
LogUtil.setGlobalFormatter(new CompactLogFormatter());
|
||||
LogUtil.setGlobalLevel(Level.ALL);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Test
|
||||
public void simpleClassDelete() throws SQLException {
|
||||
SimpleTestClass obj = simpleClassInit(db);
|
||||
obj.save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals(0, DBBeanTestBase.getRowCount(db, "SimpleTestClass"));
|
||||
assertNull(obj.getId());
|
||||
assertNull(DBBeanCache.get(SimpleTestClass.class, 1L));
|
||||
}
|
||||
|
||||
@Test(expected=NullPointerException.class)
|
||||
public void notSavedSimpleClassDelete() throws SQLException {
|
||||
simpleClassInit(db).save(db);
|
||||
SimpleTestClass obj = new SimpleTestClass();
|
||||
obj.delete(db); // Exception
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multiSimpleClassDelete() throws SQLException {
|
||||
SimpleTestClass obj = simpleClassInit(db);
|
||||
obj.save(db);
|
||||
for(int i=0; i<5; ++i)
|
||||
new SimpleTestClass().save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals(5, DBBeanTestBase.getRowCount(db, "SimpleTestClass"));
|
||||
assertNull(obj.getId());
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Test
|
||||
public void emptySubObjectDelete() throws SQLException {
|
||||
subObjectInit(db).save(db);
|
||||
ParentTestClass obj = new ParentTestClass();
|
||||
obj.save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals(1, DBBeanTestBase.getRowCount(db, "parent"));
|
||||
assertEquals(1, DBBeanTestBase.getRowCount(db, "subobject"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subObjectDelete() throws SQLException {
|
||||
ParentTestClass obj = subObjectInit(db);
|
||||
obj.save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals("Parent table size", 0, DBBeanTestBase.getRowCount(db, "parent"));
|
||||
assertEquals("SubObject table size", 0, DBBeanTestBase.getRowCount(db, "subobject"));
|
||||
assertNull(DBBeanCache.get(ParentTestClass.class, 1L));
|
||||
assertNull(DBBeanCache.get(SubObjectTestClass.class, 1L));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Test
|
||||
public void emptySubLinkObjectDelete() throws SQLException {
|
||||
subLinkObjectInit(db).save(db);
|
||||
ParentLinkTestClass obj = new ParentLinkTestClass();
|
||||
obj.save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals("Parent table size", 1, DBBeanTestBase.getRowCount(db, "parent"));
|
||||
assertEquals("Link table size", 1, DBBeanTestBase.getRowCount(db, "link"));
|
||||
assertEquals("SubObject table size", 1, DBBeanTestBase.getRowCount(db, "subobject"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subLinkObjectDelete() throws SQLException {
|
||||
ParentLinkTestClass obj = subLinkObjectInit(db);
|
||||
obj.save(db);
|
||||
obj.delete(db);
|
||||
|
||||
assertEquals("Parent table size", 0, DBBeanTestBase.getRowCount(db, "parent"));
|
||||
assertEquals("Link table size", 0, DBBeanTestBase.getRowCount(db, "link"));
|
||||
assertEquals("SubObject table size", 0, DBBeanTestBase.getRowCount(db, "subobject"));
|
||||
assertNull(DBBeanCache.get(ParentTestClass.class, 1L));
|
||||
assertNull(DBBeanCache.get(SubObjectTestClass.class, 1L));
|
||||
}
|
||||
}
|
||||
|
|
@ -33,10 +33,10 @@ public class DBBeanLoadTest {
|
|||
@Test
|
||||
public void simpleClassLoad() throws SQLException {
|
||||
simpleClassInit(db);
|
||||
insert(db, "SimpleTestClass", "5", "1234", "\"helloworld\"");
|
||||
SimpleTestClass obj = DBBean.load(db, SimpleTestClass.class, 5);
|
||||
insert(db, "SimpleTestClass", "10", "1234", "\"helloworld\"");
|
||||
SimpleTestClass obj = DBBean.load(db, SimpleTestClass.class, 10);
|
||||
|
||||
assertEquals((Long)5L, obj.getId());
|
||||
assertEquals((Long)10L, obj.getId());
|
||||
assertEquals(1234, obj.intField);
|
||||
assertEquals("helloworld", obj.strField);
|
||||
}
|
||||
|
|
@ -45,9 +45,9 @@ public class DBBeanLoadTest {
|
|||
@Test
|
||||
public void simpleClassCache() throws SQLException {
|
||||
simpleClassInit(db);
|
||||
insert(db, "SimpleTestClass", "5", "1234", "\"helloworld\"");
|
||||
SimpleTestClass obj1 = DBBean.load(db, SimpleTestClass.class, 5);
|
||||
SimpleTestClass obj2 = DBBean.load(db, SimpleTestClass.class, 5);
|
||||
insert(db, "SimpleTestClass", "11", "1234", "\"helloworld\"");
|
||||
SimpleTestClass obj1 = DBBean.load(db, SimpleTestClass.class, 11);
|
||||
SimpleTestClass obj2 = DBBean.load(db, SimpleTestClass.class, 11);
|
||||
|
||||
assertSame(obj1, obj2);
|
||||
}
|
||||
|
|
@ -58,10 +58,10 @@ public class DBBeanLoadTest {
|
|||
@Test
|
||||
public void aliasFieldsLoad() throws SQLException {
|
||||
aliasFieldsInit(db);
|
||||
insert(db, "aliasTable", "5", "1234", "\"helloworld\"");
|
||||
AliasFieldsTestClass obj = DBBean.load(db, AliasFieldsTestClass.class, 5);
|
||||
insert(db, "aliasTable", "20", "1234", "\"helloworld\"");
|
||||
AliasFieldsTestClass obj = DBBean.load(db, AliasFieldsTestClass.class, 20);
|
||||
|
||||
assertEquals((Long)5L, obj.getId());
|
||||
assertEquals((Long)20L, obj.getId());
|
||||
assertEquals(1234, obj.intField);
|
||||
assertEquals("helloworld", obj.strField);
|
||||
}
|
||||
|
|
@ -72,43 +72,43 @@ public class DBBeanLoadTest {
|
|||
@Test
|
||||
public void emptySubObjectLoad() throws SQLException {
|
||||
subObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 5);
|
||||
insert(db, "parent", "30");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 30);
|
||||
|
||||
assertEquals((Long)5L, obj.getId());
|
||||
assertEquals((Long)30L, obj.getId());
|
||||
assertEquals(0, obj.subobjs.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subObjectLoad() throws SQLException {
|
||||
subObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
insert(db, "subobject", "10", "5", "1234");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 5);
|
||||
insert(db, "parent", "31");
|
||||
insert(db, "subobject", "310", "31", "1234");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 31);
|
||||
|
||||
assertEquals(1, obj.subobjs.size());
|
||||
assertEquals((Long)10L, obj.subobjs.get(0).getId());
|
||||
assertEquals((Long)310L, obj.subobjs.get(0).getId());
|
||||
assertEquals(1234, obj.subobjs.get(0).intField);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multiSubObjectLoad() throws SQLException {
|
||||
subObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
insert(db, "subobject", "10", "5", "1001");
|
||||
insert(db, "subobject", "11", "5", "1002");
|
||||
insert(db, "subobject", "12", "5", "1003");
|
||||
insert(db, "subobject", "13", "5", "1004");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 5);
|
||||
insert(db, "parent", "32");
|
||||
insert(db, "subobject", "320", "32", "1001");
|
||||
insert(db, "subobject", "321", "32", "1002");
|
||||
insert(db, "subobject", "322", "32", "1003");
|
||||
insert(db, "subobject", "323", "32", "1004");
|
||||
ParentTestClass obj = DBBean.load(db, ParentTestClass.class, 32);
|
||||
|
||||
assertEquals(4, obj.subobjs.size());
|
||||
assertEquals((Long)10L, obj.subobjs.get(0).getId());
|
||||
assertEquals((Long)320L, obj.subobjs.get(0).getId());
|
||||
assertEquals(1001, obj.subobjs.get(0).intField);
|
||||
assertEquals((Long)11L, obj.subobjs.get(1).getId());
|
||||
assertEquals((Long)321L, obj.subobjs.get(1).getId());
|
||||
assertEquals(1002, obj.subobjs.get(1).intField);
|
||||
assertEquals((Long)12L, obj.subobjs.get(2).getId());
|
||||
assertEquals((Long)322L, obj.subobjs.get(2).getId());
|
||||
assertEquals(1003, obj.subobjs.get(2).intField);
|
||||
assertEquals((Long)13L, obj.subobjs.get(3).getId());
|
||||
assertEquals((Long)323L, obj.subobjs.get(3).getId());
|
||||
assertEquals(1004, obj.subobjs.get(3).intField);
|
||||
}
|
||||
|
||||
|
|
@ -118,44 +118,44 @@ public class DBBeanLoadTest {
|
|||
@Test
|
||||
public void emptySubLinkObjectLoad() throws SQLException {
|
||||
subLinkObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 5);
|
||||
insert(db, "parent", "40");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 40);
|
||||
|
||||
assertEquals((Long)5L, obj.getId());
|
||||
assertEquals((Long)40L, obj.getId());
|
||||
assertEquals(0, obj.subobjs.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subLinkObjectLoad() throws SQLException {
|
||||
subLinkObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
insert(db, "link", "5", "10");
|
||||
insert(db, "subobject", "10", "1234");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 5);
|
||||
insert(db, "parent", "41");
|
||||
insert(db, "link", "41", "410");
|
||||
insert(db, "subobject", "410", "1234");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 41);
|
||||
|
||||
assertEquals(1, obj.subobjs.size());
|
||||
assertEquals((Long)10L, obj.subobjs.get(0).getId());
|
||||
assertEquals((Long)410L, obj.subobjs.get(0).getId());
|
||||
assertEquals(1234, obj.subobjs.get(0).intField);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multiSubLinkObjectLoad() throws SQLException {
|
||||
subLinkObjectInit(db);
|
||||
insert(db, "parent", "5");
|
||||
insert(db, "link", "5", "10");
|
||||
insert(db, "link", "5", "11");
|
||||
insert(db, "link", "5", "12");
|
||||
insert(db, "subobject", "10", "1001");
|
||||
insert(db, "subobject", "11", "1002");
|
||||
insert(db, "subobject", "12", "1003");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 5);
|
||||
insert(db, "parent", "42");
|
||||
insert(db, "link", "42", "420");
|
||||
insert(db, "link", "42", "421");
|
||||
insert(db, "link", "42", "422");
|
||||
insert(db, "subobject", "420", "1001");
|
||||
insert(db, "subobject", "421", "1002");
|
||||
insert(db, "subobject", "422", "1003");
|
||||
ParentLinkTestClass obj = DBBean.load(db, ParentLinkTestClass.class, 42);
|
||||
|
||||
assertEquals(3, obj.subobjs.size());
|
||||
assertEquals((Long)10L, obj.subobjs.get(0).getId());
|
||||
assertEquals((Long)420L, obj.subobjs.get(0).getId());
|
||||
assertEquals(1001, obj.subobjs.get(0).intField);
|
||||
assertEquals((Long)11L, obj.subobjs.get(1).getId());
|
||||
assertEquals((Long)421L, obj.subobjs.get(1).getId());
|
||||
assertEquals(1002, obj.subobjs.get(1).intField);
|
||||
assertEquals((Long)12L, obj.subobjs.get(2).getId());
|
||||
assertEquals((Long)422L, obj.subobjs.get(2).getId());
|
||||
assertEquals(1003, obj.subobjs.get(2).intField);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue