示例#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 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));
        }
示例#3
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);
        }