Package br.com.caelum.vraptor.musicjungle.controller

Source Code of br.com.caelum.vraptor.musicjungle.controller.UsersControllerTest

package br.com.caelum.vraptor.musicjungle.controller;

import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.Arrays;
import java.util.List;

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

import br.com.caelum.vraptor.musicjungle.dao.MusicDao;
import br.com.caelum.vraptor.musicjungle.dao.UserDao;
import br.com.caelum.vraptor.musicjungle.enums.MusicType;
import br.com.caelum.vraptor.musicjungle.interceptor.UserInfo;
import br.com.caelum.vraptor.musicjungle.model.User;
import br.com.caelum.vraptor.musicjungle.util.model.UserBuilder;
import br.com.caelum.vraptor.util.test.MockResult;
import br.com.caelum.vraptor.util.test.MockValidator;

public class UsersControllerTest {

  private MockResult result;
  private MockValidator validator;
  private UsersController controller;
  private User user;
  private User anotherUser;
 
  @Mock private UserDao userDao;
  @Mock private UserInfo info;
  @Mock private MusicDao musics;
 
  @Before
  public void setUp() {
    MockitoAnnotations.initMocks(this);
    result = new MockResult();
    validator = new MockValidator();
    controller = new UsersController(userDao, result, validator, info, musics);
    user = new UserBuilder().withName("Renan").withLogin("renanigt").withPassword("1234").build();
    anotherUser = new UserBuilder().withName("Fulano").withLogin("fulano").withPassword("3456").build();
  }

  @Test
  public void shouldOpenHomeWithMusicTypes() {
    controller.home();
    MusicType[] musicsType = (MusicType[]) result.included().get("musicTypes");
    assertThat(Arrays.asList(musicsType), hasSize(MusicType.values().length));
  }
 
  @SuppressWarnings("unchecked")
  @Test
  public void shouldListAllUsers() {
    when(userDao.listAll()).thenReturn(Arrays.asList(user, anotherUser));
    controller.list();
    assertThat((List<User>)result.included().get("users"), contains(user, anotherUser));
  }
 
  @Test
  public void shouldAddUser() {
    controller.add(user);
    verify(userDao).add(user);
    assertThat(result.included().get("notice").toString(), is("User " + user.getName() + " successfully added"));
  }
 
  @Test
  public void shouldShowUser() {
    when(userDao.find(user.getLogin())).thenReturn(user);
    controller.show(user);
    assertThat((User) result.included().get("user"), is(user));
  }
 
}
TOP

Related Classes of br.com.caelum.vraptor.musicjungle.controller.UsersControllerTest

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.