public void Should_throw_When_actionArguments_contains_no_request_parameter() { var actionArguments = new Dictionary <string, object> { { "not_request", new ProjectID() } }; var context = new ActionExecutingContext( new ActionContext { HttpContext = httpContext, RouteData = new RouteData(), ActionDescriptor = new ActionDescriptor() }, new List <IFilterMetadata>(), actionArguments, new Mock <Controller>().Object); var projectVerifier = new ProjectVerifier(); var ex = Assert.ThrowsException <ServiceException>(() => projectVerifier.OnActionExecuting(context)); Assert.AreEqual("{\"code\":-1,\"message\":\"ProjectId and ProjectUID cannot both be null.\"}", ex.GetContent); Assert.AreEqual(HttpStatusCode.BadRequest, ex.Code); }
public void Should_throw_When_RaptorPrincipal_Returns_null_projectDescriptor() { var actionArguments = new Dictionary <string, object> { { "request", new ProjectID { ProjectUid = projectUid } } }; var projectData = new ProjectData { ProjectUID = projectUid.ToString() }; var contextHeaders = new HeaderDictionary(); var mockProxy = new Mock <IProjectProxy>(); mockProxy.Setup(proxy => proxy.GetProjectForCustomer(customerUid.ToString(), projectUid.ToString(), contextHeaders)).ReturnsAsync(projectData); httpContext.User = new RaptorPrincipal(new ClaimsIdentity(), Guid.NewGuid().ToString(), "customerName", "*****@*****.**", true, "3D Productivity", mockProxy.Object, contextHeaders); var context = new ActionExecutingContext( new ActionContext { HttpContext = httpContext, RouteData = new RouteData(), ActionDescriptor = new ActionDescriptor() }, new List <IFilterMetadata>(), actionArguments, new Mock <Controller>().Object); var projectVerifier = new ProjectVerifier(); var ex = Assert.ThrowsException <AggregateException>(() => projectVerifier.OnActionExecuting(context)); var innerException = ex.InnerExceptions[0] as ServiceException; Assert.IsNotNull(innerException); Assert.AreEqual($"{{\"code\":-5,\"message\":\"Missing Project or project does not belong to specified customer or don\'t have access to the project {projectUid}\"}}", innerException.GetContent); Assert.AreEqual(HttpStatusCode.Unauthorized, innerException.Code); }
public void Should_not_throw_When_request_body_contains_projectUid() { var actionArguments = new Dictionary <string, object> { { "request", new ProjectID { ProjectUid = projectUid } } }; var projectData = new ProjectData { ProjectUID = projectUid.ToString() }; var contextHeaders = new HeaderDictionary(); var mockProxy = new Mock <IProjectProxy>(); mockProxy.Setup(proxy => proxy.GetProjectForCustomer(customerUid.ToString(), projectUid.ToString(), contextHeaders)).ReturnsAsync(projectData); httpContext.User = new RaptorPrincipal(new ClaimsIdentity(), customerUid.ToString(), "customerName", "*****@*****.**", true, "3D Productivity", mockProxy.Object, contextHeaders); var context = new ActionExecutingContext( new ActionContext { HttpContext = httpContext, RouteData = new RouteData(), ActionDescriptor = new ActionDescriptor() }, new List <IFilterMetadata>(), actionArguments, new Mock <Controller>().Object); var projectVerifier = new ProjectVerifier(); projectVerifier.OnActionExecuting(context); var request = context.ActionArguments["request"] as ProjectID; Assert.IsNotNull(request); Assert.AreEqual(legacyProjectId, request.ProjectId); }
public void Should_throw_When_actionArguments_contains_no_project_identifier() { var actionArguments = new Dictionary <string, object> { { "request", new ProjectID() } }; var projectData = new ProjectData { ProjectUID = projectUid.ToString() }; var contextHeaders = new HeaderDictionary(); var mockProxy = new Mock <IProjectProxy>(); mockProxy.Setup(proxy => proxy.GetProjectForCustomer(customerUid.ToString(), projectUid.ToString(), contextHeaders)).ReturnsAsync(projectData); httpContext.User = new RaptorPrincipal(new ClaimsIdentity(), Guid.NewGuid().ToString(), "customerName", "*****@*****.**", true, "3D Productivity", mockProxy.Object, contextHeaders); var context = new ActionExecutingContext( new ActionContext { HttpContext = httpContext, RouteData = new RouteData(), ActionDescriptor = new ActionDescriptor() }, new List <IFilterMetadata>(), actionArguments, new Mock <Controller>().Object); var projectVerifier = new ProjectVerifier(); var ex = Assert.ThrowsException <ServiceException>(() => projectVerifier.OnActionExecuting(context)); Assert.IsNotNull(ex); Assert.AreEqual("{\"code\":-1,\"message\":\"ProjectId and ProjectUID cannot both be null.\"}", ex.GetContent); Assert.AreEqual(HttpStatusCode.BadRequest, ex.Code); }