public void GivenAnInvalidRequestToken_AuthenticateClient_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); var mockRestResponse = new Mock<IRestResponse>(); mockRestResponse.Setup(x => x.StatusCode).Returns(HttpStatusCode.Unauthorized); mockRestResponse.Setup(x => x.StatusDescription).Returns("Unauthorized"); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponse.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"}, {"oauth_verifier", "bbbb"} }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "asas")); // Assert. Assert.NotNull(result); Assert.Equal( "Failed to obtain an Access Token from Flickr OR the the response was not an HTTP Status 200 OK. Response Status: Unauthorized. Response Description: Unauthorized", result.Message); }
public void GivenAnInvalidVerifyLogin_RetrieveUserInformation_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); var mockRestResponseRetrieveRequestToken = new Mock<IRestResponse>(); mockRestResponseRetrieveRequestToken.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestResponseRetrieveRequestToken.Setup(x => x.Content) .Returns("oauth_token=aaa&oauth_token_secret=ccc"); var mockRestResponseVerifyCredentials = new Mock<IRestResponse<FlickrLoginResult>>(); mockRestResponseVerifyCredentials.Setup(x => x.StatusCode).Returns(HttpStatusCode.Unauthorized); mockRestResponseVerifyCredentials.Setup(x => x.StatusDescription).Returns("Unauthorized"); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponseRetrieveRequestToken.Object); mockRestClient .Setup(x => x.Execute<FlickrLoginResult>(It.IsAny<IRestRequest>())) .Returns(mockRestResponseVerifyCredentials.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"}, {"oauth_verifier", "bbb"} }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "asd")); // Assert. Assert.NotNull(result); Assert.Equal( "Failed to retrieve Login json data OR the the response was not an HTTP Status 200 OK. Response Status: Unauthorized. Response Description: Unauthorized", result.Message); }
public void GivenAnRequestTokenWithMissingParameters_AuthenticateClient_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); var mockRestResponse = new Mock<IRestResponse>(); mockRestResponse.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponse.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"} }; // Missing oauth_secret. // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "asd")); // Assert. Assert.NotNull(result); Assert.Equal( "Failed to retrieve an oauth_token and an oauth_token_secret after the client has signed and approved via Flickr.", result.Message); }
public void GivenAValidRequestToken_RedirectToAuthenticate_ReturnsARedirectResult() { // Arrange. var redirectUri = new Uri( "http://www.flickr.com/services/oauth/authorize?oauth_token=5rlgo7AwGJt67vSoHmF227QMSHXhvmOmhN5YJpRlEo"); var mockRestResponse = new Mock<IRestResponse>(); mockRestResponse.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestResponse .Setup(x => x.Content) .Returns("oauth_token=aaaaaaa&oauth_token_secret=asdasd"); var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.BuildUri(It.IsAny<IRestRequest>())) .Returns(redirectUri); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponse.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var flickrAuthenticationServiceSettings = new FlickrAuthenticationServiceSettings { CallBackUri = new Uri("http://www.pewpew.com") }; // Act. var result = flickrProvider.RedirectToAuthenticate(flickrAuthenticationServiceSettings); // Assert. Assert.NotNull(result); Assert.Equal(result.AbsoluteUri, redirectUri.AbsoluteUri); }
public void GivenARequestTokenError_RedirectToAuthenticate_ThrowsAnAuthenticationException() { // Arrange. var mockRestResponse = new Mock<IRestResponse>(); mockRestResponse.Setup(x => x.StatusCode).Returns(HttpStatusCode.Unauthorized); mockRestResponse.Setup(x => x.StatusDescription).Returns("Unauthorized"); var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponse.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var flickrAuthenticationServiceSettings = new FlickrAuthenticationServiceSettings { CallBackUri = new Uri("http://www.pewpew.com") }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.RedirectToAuthenticate(flickrAuthenticationServiceSettings)); // Assert. Assert.NotNull(result); Assert.Null(result.InnerException); Assert.Equal( "Failed to obtain a Request Token from Flickr OR the the response was not an HTTP Status 200 OK. Response Status: Unauthorized. Response Description: Unauthorized", result.Message); }
public void GivenAInvalidRequestToken_RedirectToAuthenticate_ThrowsAnAuthenticationException() { // Arrange. var mockRestResponse = new Mock<IRestResponse>(); mockRestResponse.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestResponse.Setup(x => x.Content) .Returns("oauth_token=aaaaaaa&missing_an_oauth_token_secret=asdasd"); var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponse.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var flickrAuthenticationServiceSettings = new FlickrAuthenticationServiceSettings { CallBackUri = new Uri("http://www.pewpew.com") }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.RedirectToAuthenticate(flickrAuthenticationServiceSettings)); // Assert. Assert.NotNull(result); Assert.Null(result.InnerException); Assert.Equal( "Retrieved a Flickr Request Token but it doesn't contain both the oauth_token and oauth_token_secret parameters.", result.Message); }
public void GivenAExceptionWhileTryingToRetrieveRequestToken_RedirectToAuthenticate_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Throws(new Exception("some mock exception")); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var flickrAuthenticationServiceSettings = new FlickrAuthenticationServiceSettings { CallBackUri = new Uri("http://www.pewpew.com") }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.RedirectToAuthenticate(flickrAuthenticationServiceSettings)); // Assert. Assert.NotNull(result); Assert.Equal("Failed to obtain a Request Token from Flickr.", result.Message); Assert.NotNull(result.InnerException); Assert.Equal("some mock exception", result.InnerException.Message); }
public void GivenTheCallbackParamtersAreInvalid_AuthenticateClient_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Throws<Exception>(); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection(); // Missing 2x required params. // Act. var result = Assert.Throws<ArgumentOutOfRangeException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "aa")); // Assert. Assert.NotNull(result); Assert.Equal("Specified argument was out of the range of valid values.\r\nParameter name: parameters", result.Message); }
public void GivenSomeValidGetUserInfo_RetrieveUserInformation_ReturnsAnAuthenticatedClient() { // Arrange. var mockRestClient = new Mock<IRestClient>(); var mockRestResponseRetrieveRequestToken = new Mock<IRestResponse>(); mockRestResponseRetrieveRequestToken.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestResponseRetrieveRequestToken.Setup(x => x.Content) .Returns("oauth_token=aaa&oauth_token_secret=ccc"); var verifyLogin = new FlickrLoginResult { User = new FlickrLoginResult.UserInner { Id = "some-id", Username = new FlickrLoginResult.UserInner.UsernameInner { _content = "some-name" } } }; var userData = new FlickrUserDataResult { Person = new FlickrUserDataResult.PersonInner { Id = "some-id", Username = new FlickrUserDataResult.PersonInner.ContentInner { _content = "some-name" }, Realname = new FlickrUserDataResult.PersonInner.ContentInner { _content = "some-name" }, } }; var verifyLoginMock = new Mock<IRestResponse<FlickrLoginResult>>(); verifyLoginMock.Setup(x => x.Data).Returns(verifyLogin); verifyLoginMock.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); var userDataMock = new Mock<IRestResponse<FlickrUserDataResult>>(); userDataMock.Setup(x => x.Data).Returns(userData); userDataMock.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponseRetrieveRequestToken.Object); mockRestClient .Setup(x => x.Execute<FlickrLoginResult>(It.IsAny<IRestRequest>())) .Returns(verifyLoginMock.Object); mockRestClient .Setup(x => x.Execute<FlickrUserDataResult>(It.IsAny<IRestRequest>())) .Returns(userDataMock.Object); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"}, {"oauth_verifier", "bbb"} }; // Act. var result = flickrProvider.AuthenticateClient(nameValueCollection, "asd"); // Assert. Assert.NotNull(result); Assert.Equal("flickr", result.ProviderName); Assert.NotNull(result.UserInformation); Assert.NotNull(result.UserInformation.Id); Assert.NotNull(result.UserInformation.Name); Assert.NotNull(result.UserInformation.UserName); }
public void GivenExecutingVerifyLoginThrowsAnException_AuthenticateClient_ThrowsAnAuthenticationException() { // Arrange. const string exceptionMessage = "some mock exception."; var mockRestClient = new Mock<IRestClient>(); var mockRestResponseRetrieveRequestToken = new Mock<IRestResponse>(); mockRestResponseRetrieveRequestToken.Setup(x => x.StatusCode).Returns(HttpStatusCode.OK); mockRestResponseRetrieveRequestToken.Setup(x => x.Content) .Returns("oauth_token=aaa&oauth_token_secret=ccc"); var verifyLogin = new FlickrLoginResult { User = new FlickrLoginResult.UserInner { Id = "some-id", Username = new FlickrLoginResult.UserInner.UsernameInner { _content = "some-name" } } }; var mockRestResponseVerifyCredentials = new Mock<IRestResponse<FlickrLoginResult>>(); mockRestResponseVerifyCredentials.Setup(x => x.Data).Returns(verifyLogin); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Returns(mockRestResponseRetrieveRequestToken.Object); mockRestClient .Setup(x => x.Execute<FlickrLoginResult>(It.IsAny<IRestRequest>())) .Throws(new Exception(exceptionMessage)); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"}, {"oauth_verifier", "bbb"} }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "asd")); // Assert. Assert.NotNull(result); Assert.Equal("Failed to retrieve Login json data from the Flickr Api.", result.Message); }
public void GivenExecutingARequestToRetrieveARequestTokenThrowsAnException_AuthenticateClient_ThrowsAnAuthenticationException() { // Arrange. var mockRestClient = new Mock<IRestClient>(); mockRestClient .Setup(x => x.Execute(It.IsAny<IRestRequest>())) .Throws(new Exception("one does not simply 'get a job'.")); var flickrProvider = new FlickrProvider("a", "b", null, new RestClientFactory(mockRestClient.Object)); var nameValueCollection = new NameValueCollection { {"oauth_token", "aaa"}, {"oauth_verifier", "bbbb"} }; // Act. var result = Assert.Throws<AuthenticationException>( () => flickrProvider.AuthenticateClient(nameValueCollection, "aa")); // Assert. Assert.NotNull(result); Assert.Equal("Failed to convert Request Token to an Access Token, from Flickr.", result.Message); Assert.NotNull(result.InnerException); Assert.Equal("one does not simply 'get a job'.", result.InnerException.Message); }