コード例 #1
0
        public void GetFormInfo()
        {
            var protector         = new Mock <IDataProtector>();
            var protectorProvider = new Mock <IDataProtectionProvider>();

            protectorProvider.Setup(x => x.CreateProtector(It.IsAny <string>())).Returns(protector.Object);
            var surfaceRouteParams = $"{SurfaceFormHelper.ReservedAdditionalKeys.Controller}=mycontroller&{SurfaceFormHelper.ReservedAdditionalKeys.Action}=myaction&{SurfaceFormHelper.ReservedAdditionalKeys.Area}=myarea";

            protector.Setup(dataProtector => dataProtector.Protect(It.IsAny <byte[]>())).Returns(Encoding.UTF8.GetBytes(surfaceRouteParams));
            protector.Setup(dataProtector => dataProtector.Unprotect(It.IsAny <byte[]>())).Returns(Encoding.UTF8.GetBytes(surfaceRouteParams));
            var helper  = new SurfaceFormHelper(Mock.Of <ILoggerFactory>(), protectorProvider.Object);
            var request = new Mock <HttpRequest>();

            request.Setup(httpRequest => httpRequest.Method).Returns("GET");
            request.Setup(httpRequest => httpRequest.Query).Returns(
                new FormCollection(new Dictionary <string, StringValues>
            {
                { "ufprt", Convert.ToBase64String(Encoding.UTF8.GetBytes(surfaceRouteParams)) }
            }));

            var httpCtxAccessor = new Mock <IHttpContextAccessor>();
            var httpContext     = new Mock <HttpContext>();

            httpContext.Setup(context => context.Request).Returns(request.Object);
            httpCtxAccessor.Setup(accessor => accessor.HttpContext).Returns(httpContext.Object);
            var routeCtx = new RouteContext(httpContext.Object);

            var result = helper.GetFormInfo(routeCtx);

            Assert.Equal("mycontroller", result.ControllerName);
            Assert.Equal("myaction", result.ActionName);
            Assert.Equal("myarea", result.Area);
        }
コード例 #2
0
        public void GetRequestSurfaceToken_Get()
        {
            var helper  = new SurfaceFormHelper(Mock.Of <ILoggerFactory>(), Mock.Of <IDataProtectionProvider>());
            var request = new Mock <HttpRequest>();

            request.Setup(httpRequest => httpRequest.Method).Returns("GET");
            request.Setup(httpRequest => httpRequest.Query).Returns(
                new FormCollection(new Dictionary <string, StringValues>
            {
                { "ufprt", "test" }
            }));
            var result = helper.GetRequestSurfaceToken(request.Object);

            Assert.Equal("test", result);
        }
コード例 #3
0
        public void ValidateRequiredTokenParams()
        {
            var helper = new SurfaceFormHelper(Mock.Of <ILoggerFactory>(), Mock.Of <IDataProtectionProvider>());
            var result = helper.ValidateRequiredTokenParams(new Dictionary <string, string>
            {
                { SurfaceFormHelper.ReservedAdditionalKeys.Controller, "foo" },
                { SurfaceFormHelper.ReservedAdditionalKeys.Action, "bar" },
                { SurfaceFormHelper.ReservedAdditionalKeys.Area, "a" }
            });

            Assert.Equal(true, result);

            result = helper.ValidateRequiredTokenParams(new Dictionary <string, string>
            {
                { SurfaceFormHelper.ReservedAdditionalKeys.Controller, "foo" },
                { SurfaceFormHelper.ReservedAdditionalKeys.Action, "bar" }
            });

            Assert.Equal(false, result);
        }