/**
* Copyright 2013 Marin Solutions
*/
package com.captaindebug.social.facebookposts.mockito;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.social.facebook.api.Facebook;
import org.springframework.social.facebook.api.FeedOperations;
import org.springframework.social.facebook.api.Post;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.ui.Model;
import com.captaindebug.social.facebookposts.FacebookPostsController;
import com.captaindebug.social.facebookposts.implementation.SocialContext;
/**
* @author Roger
*
*/
public class FacebookPostsControllerTest {
@Mock
private SocialContext socialContext;
private FacebookPostsController instance;
@Mock
private HttpServletRequest request;
@Mock
private HttpServletResponse response;
@Mock
private Model model;
@Mock
private Facebook facebook;
@Mock
private FeedOperations feedOps;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
instance = new FacebookPostsController();
ReflectionTestUtils.setField(instance, "socialContext", socialContext);
}
@Test
public void testShowPostsForUser_user_is_not_signed_in() throws Exception {
when(socialContext.isSignedIn(request, response)).thenReturn(false);
String result = instance.showPostsForUser(request, response, model);
assertEquals("signin", result);
}
@Test
public void testShowPostsForUser_user_is_signed_in() throws Exception {
when(socialContext.isSignedIn(request, response)).thenReturn(true);
when(socialContext.getFacebook()).thenReturn(facebook);
when(facebook.feedOperations()).thenReturn(feedOps);
List<Post> posts = Collections.emptyList();
when(feedOps.getHomeFeed()).thenReturn(posts);
String result = instance.showPostsForUser(request, response, model);
verify(model).addAttribute("posts", posts);
assertEquals("show-posts", result);
}
}