/******************************************************************************* * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); *******************************************************************************/ package org.springside.examples.showcase.service; import static org.assertj.core.api.Assertions.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.springside.examples.showcase.entity.User; import org.springside.examples.showcase.repository.jpa.UserDao; import org.springside.examples.showcase.service.ShiroDbRealm.ShiroUser; import org.springside.modules.test.security.shiro.ShiroTestUtils; public class AccountServiceTest { @InjectMocks private AccountService accountService; @Mock private UserDao mockUserDao; @Mock private BusinessLogger businessLogger; @Before public void setUp() { MockitoAnnotations.initMocks(this); ShiroTestUtils.mockSubject(new ShiroUser("foo", "Foo")); } @After public void tearDown() { ShiroTestUtils.clearSubject(); } @Test public void saveUser() { User admin = new User(); admin.setId(1L); User user = new User(); user.setId(2L); user.setPlainPassword("123"); // 正常保存用户. accountService.saveUser(user); // 保存超级管理用户抛出异常. try { accountService.saveUser(admin); failBecauseExceptionWasNotThrown(ServiceException.class); } catch (ServiceException e) { // expected exception } Mockito.verify(mockUserDao, Mockito.never()).delete(1L); } }