package com.john.springinaction.mvc;
import com.john.springinaction.domain.Spittle;
import com.john.springinaction.service.SpitterService;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.mockito.Mockito.*;
/**
* Created with IntelliJ IDEA.
* User: eric
* Date: 9/13/12
* Time: 3:31 PM
* To change this template use File | Settings | File Templates.
*/
public class HomeControllerTest {
@Before
public void setUp() throws Exception {
}
@Test
public void shouldDisplayRecentSpittles() {
List<Spittle> expectedSpittles = asList(new Spittle(), new Spittle(), new Spittle());
SpitterService spitterService = mock(SpitterService.class);
when(spitterService.getRecentSpittles(HomeController.DEFAULT_SPITTLES_PER_PAGE)).
thenReturn(expectedSpittles);
HomeController controller = new HomeController(spitterService);
HashMap<String, Object> model = new HashMap<String, Object>();
String viewName = controller.showHomePage(model);
assertEquals("home", viewName);
assertSame(expectedSpittles, model.get("spittles"));
verify(spitterService, times(1)).getRecentSpittles(HomeController.DEFAULT_SPITTLES_PER_PAGE);
}
}