package org.springside.examples.miniservice.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.miniservice.dao.account.UserDao; import org.springside.examples.miniservice.service.account.AccountManager; /** * AccountManager的单元测试用例, 测试Service层的业务逻辑. * * 使用EasyMock对UserDao进行模拟. * * @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 authUser() { EasyMock.expect(mockUserDao.countUserByLoginNamePassword("admin", "admin")).andReturn(1L); EasyMock.expect(mockUserDao.countUserByLoginNamePassword("admin", "errorPasswd")).andReturn(0L); control.replay(); assertEquals(true, accountManager.authenticate("admin", "admin")); assertEquals(false, accountManager.authenticate("admin", "")); assertEquals(false, accountManager.authenticate("admin", "errorPasswd")); } }