public void RegisteredUser_IsDenied_IfHasNoModuleAccess()
        {
            // Arrange
            var sut = this._mockDnnModuleAuthorizeAttribute.Object;

            this._mockDnnModuleAuthorizeAttribute.Protected().Setup <bool>("HasModuleAccess").Returns(false);
            this._mockDnnModuleAuthorizeAttribute.Protected().Setup("HandleUnauthorizedRequest", ItExpr.IsAny <AuthorizationContext>());

            this._mockActionDescriptor.Setup(x => x.IsDefined(typeof(AllowAnonymousAttribute), true)).Returns(false);
            this._mockControllerDescriptor.Setup(x => x.IsDefined(typeof(AllowAnonymousAttribute), true)).Returns(false);
            this._mockActionDescriptor.SetupGet(x => x.ControllerDescriptor).Returns(this._mockControllerDescriptor.Object);

            var moduleContext = new ModuleInstanceContext();

            moduleContext.Configuration = new ModuleInfo();
            var fakeController = new Fakes.FakeDnnController {
                ModuleContext = moduleContext
            };
            var controllerContext = new ControllerContext(new RequestContext(), fakeController);
            var context           = new AuthorizationContext(controllerContext, this._mockActionDescriptor.Object);

            // Act
            sut.OnAuthorization(context);

            // Assert
            this._mockRepository.VerifyAll();
        }
        public void AnonymousUser_IsAllowed_If_AllowAnonymousAttribute_IsAtActionLevel()
        {
            // Arrange
            var sut = this._mockDnnModuleAuthorizeAttribute.Object;

            this._mockActionDescriptor.Setup(x => x.IsDefined(typeof(AllowAnonymousAttribute), true)).Returns(true);

            var fakeController = new Fakes.FakeDnnController {
                ModuleContext = new ModuleInstanceContext()
            };
            var controllerContext = new ControllerContext(new RequestContext(), fakeController);
            var context           = new AuthorizationContext(controllerContext, this._mockActionDescriptor.Object);

            // Act
            sut.OnAuthorization(context);

            // Assert
            // Assert.IsTrue(a.IsAuthorized);
            this._mockRepository.VerifyAll();
        }
        public void AnonymousUser_IsNotAllowed_If_AllowAnonymousAttribute_IsNotPresent()
        {
            // Arrange
            this._mockDnnModuleAuthorizeAttribute.Protected().Setup("HandleUnauthorizedRequest", ItExpr.IsAny <AuthorizationContext>());
            var sut = this._mockDnnModuleAuthorizeAttribute.Object;

            this._mockActionDescriptor.Setup(x => x.IsDefined(typeof(AllowAnonymousAttribute), true)).Returns(false);
            this._mockControllerDescriptor.Setup(x => x.IsDefined(typeof(AllowAnonymousAttribute), true)).Returns(false);
            this._mockActionDescriptor.SetupGet(x => x.ControllerDescriptor).Returns(this._mockControllerDescriptor.Object);

            var fakeController = new Fakes.FakeDnnController {
                ModuleContext = new ModuleInstanceContext()
            };
            var controllerContext = new ControllerContext(new RequestContext(), fakeController);
            var context           = new AuthorizationContext(controllerContext, this._mockActionDescriptor.Object);

            // Act
            sut.OnAuthorization(context);

            // Assert
            this._mockRepository.VerifyAll();
        }