package org.springside.examples.miniweb.unit.service.account;
import static org.junit.Assert.*;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springside.examples.miniweb.dao.account.UserDao;
import org.springside.examples.miniweb.service.ServiceException;
import org.springside.examples.miniweb.service.account.AccountManager;
/**
* SecurityEntityManager的测试用例, 测试Service层的业务逻辑.
*
* 调用实际的DAO类进行操作,亦可使用MockDAO对象将本用例改为单元测试.
*
* @author calvin
*/
public class AccountManagerTest {
private IMocksControl control = EasyMock.createControl();
private AccountManager accountManager;
private UserDao mockUserDao;
@Before
public void setUp() {
accountManager = new AccountManager();
mockUserDao = control.createMock(UserDao.class);
accountManager.setUserDao(mockUserDao);
}
@After
public void tearDown() {
control.verify();
}
@Test
public void deleteUser() {
mockUserDao.delete(2L);
control.replay();
//正常删除用户.
accountManager.deleteUser(2L);
//删除超级管理用户抛出异常.
try {
accountManager.deleteUser(1L);
fail("expected ServicExcepton not be thrown");
} catch (ServiceException e) {
//expected exception
}
}
}