package br.gov.servicos.editor.conteudo.cartas; import br.gov.servicos.editor.conteudo.ConteudoVersionado; import br.gov.servicos.editor.conteudo.ConteudoVersionadoFactory; import br.gov.servicos.editor.security.TipoPermissao; import br.gov.servicos.editor.security.UserProfiles; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.security.access.AccessDeniedException; import static br.gov.servicos.editor.conteudo.TipoPagina.SERVICO; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.*; @RunWith(MockitoJUnitRunner.class) public class RenomearCartaControllerTest { @Mock ConteudoVersionado carta; @Mock ConteudoVersionadoFactory factory; @Mock UserProfiles userProfiles; @Test(expected = ConteudoInexistenteException.class) public void deveLancarConteudoInexistenteSeConteudoNaoExiste() { RenomearCartaController controller = new RenomearCartaController(userProfiles, factory); given(factory.pagina(anyString(), any())) .willReturn(carta); given(userProfiles.temPermissaoParaTipoPaginaOrgaoEspecifico(eq(TipoPermissao.CRIAR), eq(SERVICO), anyString())).willReturn(true); given(carta.getTipo()).willReturn(SERVICO); given(carta.existe()).willReturn(false); controller.renomear("id", "novoNome"); } @Test(expected = AccessDeniedException.class) public void retornarAcessoNegadoCasoUsuarioNaoTenhaAcesso() { RenomearCartaController controller = new RenomearCartaController(userProfiles, factory); given(userProfiles.temPermissaoParaTipoPagina(eq(TipoPermissao.CRIAR), eq(SERVICO))).willReturn(false); given(userProfiles.temPermissaoParaTipoPaginaOrgaoEspecifico(eq(TipoPermissao.CRIAR), eq(SERVICO), anyString())).willReturn(false); given(factory.pagina(anyString(), any())) .willReturn(carta); given(carta.existe()).willReturn(true); controller.renomear("id", "novoNome"); } }