package com.jinhe.tss.component.recycle;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.jinhe.tss.component.TxTestSupport;
import com.jinhe.tss.component.recycle.entity.Recycle;
import com.jinhe.tss.component.recycle.maintain.RecycleService;
import com.jinhe.tss.component.testmock.model._Group;
import com.jinhe.tss.component.testmock.model._User;
import com.jinhe.tss.component.testmock.service._IUMSerivce;
public class RecycleModuleTest extends TxTestSupport {
@Autowired _IUMSerivce umSerivce;
@Autowired RecycleService recycleService;
public void testRecycleModule() {
log.info("test start......");
_Group group = new _Group();
group.setCode("RD");
group.setName("研发");
group = umSerivce.createGroup(group);
_Group group2 = new _Group();
group2.setCode("RD-IT");
group2.setName("研发-IT");
group2.setParentId(group.getId());
group2 = umSerivce.createGroup(group2);
_User user = new _User();
user.setGroup(group);
user.setUserName("JohnXa");
user.setPassword("123456");
user.setAge(new Integer(25));
user.setAddr("New York");
user.setEmail("john@hotmail.com");
umSerivce.createUser(user);
queryResults(group);
// 邏輯刪除
umSerivce.deleteGroup(group);
queryResults(group);
List<?> list = recycleService.getRecyledList(1);
assertEquals(1, list.size());
Recycle recycle = (Recycle) list.get(0);
System.out.println(recycle.getEntityClass() + " : " + recycle.getNodeName() + " : " + recycle.getUserName());
System.out.println(recycle.getBeanId() + " : " + recycle.getMethodName() + " : \n" + recycle.getParams());
// 還原
recycleService.recover(recycle.getId());
queryResults(group);
list = recycleService.getRecyledList(1);
assertEquals(0, list.size());
// 再邏輯刪除
umSerivce.deleteGroup(group);
queryResults(group);
list = recycleService.getRecyledList(1);
assertEquals(1, list.size());
recycle = (Recycle) list.get(0);
System.out.println(recycle.getEntityClass() + " : " + recycle.getNodeName() + " : " + recycle.getUserName());
System.out.println(recycle.getBeanId() + " : " + recycle.getMethodName() + " : \n" + recycle.getParams());
// 物理刪除
recycleService.physicsDelete(recycle.getId());
List<_Group> groupList = umSerivce.getChildrenById(group.getId());
assertEquals(0, groupList.size());
List<_User> userList = umSerivce.queryAllUsers();
assertEquals(0, userList.size());
}
private void queryResults(_Group group) {
List<_User> userList = umSerivce.queryAllUsers();
assertEquals(1, userList.size());
List<_Group> groupList = umSerivce.getChildrenById(group.getId());
assertEquals(2, groupList.size());
for( _Group temp : groupList) {
System.out.println(temp.getName() + ":" + temp.getDeleted() + "_" + temp.getRecycleId());
}
System.out.println();
}
}