static void Verify_OnAuthorization_Response(bool isAuthenticated, string actionName, bool isAuthorized, HttpStatusCode expectedStatusCode, string expectedMessage) { //------------Setup for test-------------------------- var authorizationProvider = new Mock <IAuthorizationService>(); authorizationProvider.Setup(p => p.IsAuthorized(It.IsAny <IAuthorizationRequest>())).Returns(isAuthorized); var attribute = new AuthorizeWebAttribute(authorizationProvider.Object); var actionContext = CreateActionContext(isAuthenticated, actionName); //------------Execute Test--------------------------- attribute.OnAuthorization(actionContext); //------------Assert Results------------------------- if (isAuthorized && isAuthenticated) { Assert.IsNull(actionContext.Response); } else { Assert.AreEqual(expectedStatusCode, actionContext.Response.StatusCode); Assert.AreEqual(expectedStatusCode.ToString(), actionContext.Response.ReasonPhrase); var task = actionContext.Response.Content.ReadAsStringAsync(); task.Wait(); Assert.AreEqual(string.Format("{{\"Message\":\"{0}\"}}", expectedMessage), task.Result); } }
public void AuthorizeWebAttribute_Constructor_Default_ProviderIsAuthorizationProviderInstance() { //------------Setup for test-------------------------- //------------Execute Test--------------------------- var attribute = new AuthorizeWebAttribute(); //------------Assert Results------------------------- Assert.AreSame(ServerAuthorizationService.Instance, attribute.Service); }
public void AuthorizeWebAttribute_OnAuthorization_ActionContextIsNull_ThrowsArgumentNullException() { //------------Setup for test-------------------------- var provider = new Mock <IAuthorizationService>(); var attribute = new AuthorizeWebAttribute(provider.Object); //------------Execute Test--------------------------- attribute.OnAuthorization(null); //------------Assert Results------------------------- }
public void AuthorizeWebAttribute_OnAuthorization_GivenUserIsNotAuthenticated_ShouldReturn401JSON() { //------------Setup for test-------------------------- var provider = new Mock <IAuthorizationService>(); var attribute = new AuthorizeWebAttribute(provider.Object); var httpActionContext = CreateActionContext(false, "http://localhost:8080/Examples/Workflow_One.json"); //------------Execute Test--------------------------- attribute.OnAuthorization(httpActionContext); //------------Assert Results------------------------- var result = httpActionContext.Response; Assert.IsFalse(result.IsSuccessStatusCode); var responseMessage = result.Content.ReadAsStringAsync().Result; Assert.AreEqual("{\r\n \"Error\": {\r\n \"Status\": 401,\r\n \"Title\": \"user_unauthorized\",\r\n \"Message\": \"Authorization has been denied for this user.\"\r\n }\r\n}", responseMessage); }
public void AuthorizeWebAttribute_OnAuthorization_GivenServicedIsNotAuthenticated_ShouldReturn403XML() { //------------Setup for test-------------------------- var provider = new Mock <IAuthorizationService>(); var attribute = new AuthorizeWebAttribute(provider.Object); var httpActionContext = CreateActionContext(true, "http://localhost:8080/Examples/Workflow_One.xml"); //------------Execute Test--------------------------- attribute.OnAuthorization(httpActionContext); //------------Assert Results------------------------- var result = httpActionContext.Response; Assert.IsFalse(result.IsSuccessStatusCode); var responseMessage = result.Content.ReadAsStringAsync().Result; Assert.AreEqual("<Error>\r\n <Status>403</Status>\r\n <Title>user_forbidden</Title>\r\n <Message>Authorization has been denied for this request.</Message>\r\n</Error>", responseMessage); }
static void Verify_OnAuthorization_Response(bool isAuthenticated, string actionName, bool isAuthorized, HttpStatusCode expectedStatusCode, string title, string expectedMessage, EmitionTypes emitionTypes = EmitionTypes.JSON) { //------------Setup for test-------------------------- var authorizationProvider = new Mock <IAuthorizationService>(); authorizationProvider.Setup(p => p.IsAuthorized(It.IsAny <IAuthorizationRequest>())).Returns(isAuthorized); var attribute = new AuthorizeWebAttribute(authorizationProvider.Object); var actionContext = CreateActionContext(isAuthenticated, actionName); //------------Execute Test--------------------------- attribute.OnAuthorization(actionContext); //------------Assert Results------------------------- if (isAuthorized && isAuthenticated) { Assert.IsNull(actionContext.Response); } else { Assert.AreEqual(expectedStatusCode, actionContext.Response.StatusCode); var errorObject = new Error { Status = (int)expectedStatusCode, Title = title, Message = expectedMessage }; var actualResponse = actionContext.Response.Content.ReadAsStringAsync().Result; if (emitionTypes.Equals(EmitionTypes.XML)) { Assert.AreEqual(errorObject.ToXML(), actualResponse); } Assert.AreEqual(errorObject.ToJSON(), actualResponse); } }