Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }