Package br.com.triadworks.loja.controller

Source Code of br.com.triadworks.loja.controller.LoginBeanTest

package br.com.triadworks.loja.controller;

import static org.mockito.Mockito.only;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import br.com.triadworks.loja.controller.LoginBean;
import br.com.triadworks.loja.controller.UsuarioWeb;
import br.com.triadworks.loja.model.Usuario;
import br.com.triadworks.loja.service.UsuarioService;
import br.com.triadworks.loja.util.FacesUtils;

public class LoginBeanTest {

  LoginBean controller;
 
  private UsuarioWeb usuarioWeb;
  @Mock
  private UsuarioService usuarioService;
  @Mock
  private FacesUtils facesUtils;
 
  @Before
  public void setup() {
    MockitoAnnotations.initMocks(this);
    usuarioWeb = new UsuarioWeb();
    controller = new LoginBean(usuarioWeb, usuarioService, facesUtils);
  }
 
  @Test
  public void logandoNaAplicacao() {
   
    seExisteUsuarioCadastradoCom("usuario", "senha");
   
    quandoUsuarioEntraCom("usuario", "senha");
   
    String outcome = controller.logar();
   
    Assert.assertEquals("home", outcome);
    Assert.assertTrue(usuarioWeb.isLogado());
  }
 
  @Test
  public void naoLogaQuandoUsuarioInvalido() {
   
    quandoUsuarioEntraCom("invalido", "senha");
   
    String outcome = controller.logar();
   
    Assert.assertNull("Deveria continuar na mesma página", outcome);
    Assert.assertFalse(usuarioWeb.isLogado());
    verify(facesUtils, only()).adicionaMensagemDeErro("Login ou senha inválida.");
  }
 
  @Test
  public void deslogandoDaAplicacao() {
   
    seExisteUsuarioLogado();
   
    String outcome = controller.sair();
   
    Assert.assertEquals("login", outcome);
    Assert.assertFalse(usuarioWeb.isLogado());
  }

  private void seExisteUsuarioLogado() {
    usuarioWeb.loga(new Usuario("user", "secret"));
  }

  private void quandoUsuarioEntraCom(String login, String senha) {
    controller.setLogin(login);
    controller.setSenha(senha);
  }

  private void seExisteUsuarioCadastradoCom(String login, String senha) {
    Usuario usuario = new Usuario(login, senha);
    when(usuarioService.autentica(login, senha)).thenReturn(usuario);
  }
 
}
TOP

Related Classes of br.com.triadworks.loja.controller.LoginBeanTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.