package controllers; import static helpers.TestSetup.testHttpContext; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Test; import play.libs.F; import play.libs.F.Tuple; import play.libs.OAuth.RequestToken; import play.mvc.Http.Context; import play.mvc.Http.Flash; import play.mvc.Http.Status; import play.mvc.Result; import play.test.Helpers; import akka.actor.ActorRef; import external.services.OAuthService; import static play.test.Helpers.status; import static org.fest.assertions.Assertions.assertThat; public class ApplicationTest { @Test public void redirectToOAuthProviderForRegistration() { Context.current.set(testHttpContext()); OAuthService oauth = mock(OAuthService.class); Tuple<String, RequestToken> t = new F.Tuple<String, RequestToken>( "twitter.redirect.url", new RequestToken("twitter.token", "twitter.secret")); when(oauth.retrieveRequestToken(anyString())).thenReturn(t); Application app = new Application(mock(ActorRef.class), oauth); Result result = app.register(); assertThat(status(result)).isEqualTo(Status.SEE_OTHER); assertThat(Helpers.redirectLocation(result)).isEqualTo("twitter.redirect.url"); Flash flash = Context.current().flash(); assertThat(flash.get("request_token")).isEqualTo("twitter.token"); assertThat(flash.get("request_secret")).isEqualTo("twitter.secret"); } }