public void Execute()
        {
            // arrange
            var rule = new ScheduleFrequencyPatternRule(null, null);

            var context = Mock.Create<RuleContext>(Constructor.Mocked, Behavior.CallOriginal);
            Mock.Arrange(() => context.InputPropertyValues)
                .Returns(new Dictionary<IPropertyInfo, object> { { ProcessScheduleEdit.HighlightScheduleFrequencyPatternProperty, 0 }, { ProcessScheduleEdit.ScheduleFrequencyPatternIdProperty, 0 } });

            var ruleWasThrown = false;
            Mock.Arrange(() => context.AddErrorResult(Arg.IsAny<IPropertyInfo>(), Arg.AnyString)).DoInstead(() => ruleWasThrown = true);

            // act
            var privateAccessor = new PrivateAccessor(rule);
            privateAccessor.CallMethod("Execute", new object[] { context });

            // assert
            Assert.IsTrue(ruleWasThrown);

            // arrange
            ruleWasThrown = false;
            Mock.Arrange(() => context.InputPropertyValues)
                .Returns(new Dictionary<IPropertyInfo, object> { { ProcessScheduleEdit.HighlightScheduleFrequencyPatternProperty, 0 }, { ProcessScheduleEdit.ScheduleFrequencyPatternIdProperty, 1 } });

            // act
            privateAccessor.CallMethod("Execute", new object[] { context });

            // assert
            Assert.IsFalse(ruleWasThrown);
        }
        public void Ctor()
        {
            // arrange
            var inputProperties = new List<IPropertyInfo> { ProcessScheduleEdit.HighlightScheduleFrequencyPatternProperty, ProcessScheduleEdit.ScheduleFrequencyPatternIdProperty };
            var affectedProperties = new List<IPropertyInfo> { ProcessScheduleEdit.HighlightScheduleFrequencyPatternProperty, ProcessScheduleEdit.ScheduleFrequencyPatternIdProperty };

            // act
            var rule = new ScheduleFrequencyPatternRule(ProcessScheduleEdit.HighlightScheduleFrequencyPatternProperty, ProcessScheduleEdit.ScheduleFrequencyPatternIdProperty);

            // assert
            CollectionAssert.AreEqual(inputProperties, rule.InputProperties);
            CollectionAssert.AreEqual(affectedProperties, rule.AffectedProperties);
        }