コード例 #1
0
        public void ApplyRule_WhenThereIsAOneRule_ShouldIsEnableAndIsVisibleCalledOnce()
        {
            // Arrange
            var restrictedPermission = new RestrictedPermission(this.permissionSettings, this.permissionRules);

            // Act
            restrictedPermission.ApplyRules();

            // Assert
            this.mockPermission.Received(1).IsEnabled(this.permissionSettings);
            this.mockPermission.Received(1).IsVisible(this.permissionSettings);
        }
コード例 #2
0
        public void GetPermissionModel_WhenActionTypeIsRelatedPropertyStatusRule_ShouldPermissionHasPropertyStatusRule(ActionEnum action)
        {
            // Arrange
            this.permissionSettings.Action = action;

            // Act
            var permission = this.sut.GetPermission(this.permissionSettings);

            // Assert
            RestrictedPermission restrictedPermission = (RestrictedPermission)permission;

            Assert.That(restrictedPermission.Rules, Has.Some.TypeOf <PropertyStatusPermissionRule>(), $"{action.ToString()} action type doesnt have RoomStatusPermissionRule");
        }
コード例 #3
0
        public void GetPermissionModel_WhenActionTypeIsRelatedWithPrivateProperty_ShouldHasPrivatePermissionRuleType(ActionEnum actionType)
        {
            // Arrange
            this.permissionSettings.Action = actionType;

            // Act
            var permission = this.sut.GetPermission(this.permissionSettings);

            // Assert
            RestrictedPermission restrictedPermission = (RestrictedPermission)permission;

            Assert.That(restrictedPermission.Rules, Has.Some.TypeOf <PrivatePermissionRule>(), $"{actionType.ToString()} action type doesnt have PermissionRuleModel");
        }
コード例 #4
0
        public void GetPermissionModel_WhenActionTypeHasBiddingLockedPermissionRule_ShouldPermissionRuleHasBiddingLockedPermissionRule(ActionEnum action)
        {
            // Arrange
            this.permissionSettings.Action = action;

            // Act
            var permissionModel = this.sut.GetPermission(this.permissionSettings);

            // Assert
            RestrictedPermission restrictedPermission = (RestrictedPermission)permissionModel;

            Assert.That(restrictedPermission.Rules, Has.Some.TypeOf <BiddingLockedPermissionRule>(), $"{action.ToString()} action type doesnt have BiddingLockedPermissionRule");
        }
コード例 #5
0
        public void ApplyRule_WhenThereIsAOneRuleReturnTrue_ShouldIsEnableAndIsVisibleEqualToRule()
        {
            // Arrange
            this.mockPermission.IsEnabled(this.permissionSettings).Returns(true);
            this.mockPermission.IsVisible(this.permissionSettings).Returns(true);
            var restrictedPermission = new RestrictedPermission(this.permissionSettings, this.permissionRules);

            // Act
            restrictedPermission.ApplyRules();

            // Assert
            Assert.That(restrictedPermission.IsVisible, Is.EqualTo(true));
            Assert.That(restrictedPermission.IsEnabled, Is.EqualTo(true));
        }
コード例 #6
0
        public void ApplyRule_WhenThereAreTwoRulesAndTheFirstOneIsEnabledIsFalse_ShouldSecondRuleIsEnabledCalledNever()
        {
            // Arrange
            this.mockPermission.IsEnabled(this.permissionSettings).Returns(false);
            var secondMockedRule = Substitute.For <IPermissionRule>();

            this.permissionRules.Add(secondMockedRule);
            var restrictedPermission = new RestrictedPermission(this.permissionSettings, this.permissionRules);

            // Act
            restrictedPermission.ApplyRules();

            // Assert
            secondMockedRule.DidNotReceive().IsEnabled(this.permissionSettings);
        }