package me.moodcat.api;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
import java.util.List;
import me.moodcat.database.controllers.UserDAO;
import me.moodcat.database.entities.User;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.google.common.collect.Lists;
import com.google.inject.Provider;
@RunWith(MockitoJUnitRunner.class)
public class UserAPITest {
@Mock
private UserDAO userDAO;
@Mock
private Provider<User> currentUserProvider;
@InjectMocks
private UserAPI userAPI;
private List<User> users;
@Mock
private User oneUser;
@Mock
private User anotherUser;
@Mock
private User me;
@Before
public void setUp() {
users = Lists.newArrayList();
users.add(oneUser);
users.add(anotherUser);
when(oneUser.getId()).thenReturn(1);
when(userDAO.getAll()).thenReturn(users);
when(userDAO.findById(1)).thenReturn(oneUser);
when(userDAO.getLeaderboard(Matchers.anyLong())).thenReturn(users);
when(currentUserProvider.get()).thenReturn(me);
when(me.getId()).thenReturn(4);
when(me.getPoints()).thenReturn(10);
}
@Test
public void getAllUsers() {
assertEquals(2, userAPI.getUsers().size());
}
@Test
public void getAUser() {
assertEquals(1, userAPI.getUser(1).getId().intValue());
}
@Test
public void getMe() {
assertEquals(4, userAPI.getMe().getId().intValue());
}
@Test
public void getPoints() {
assertEquals(10, userAPI.getPoints().intValue());
}
@Test
public void getLeaderboard() {
assertEquals(1, userAPI.getLeaderboard(25).get(0).getId().intValue());
}
}