public void ExecuteWhenFlagIsNotNullAndTrue()
        {
            var pollDeletedFlagProperty = new Mock <IPropertyInfo>(MockBehavior.Strict);

            pollDeletedFlagProperty.Setup(_ => _.Name).Returns("PollDeletedFlag");

            var isActiveProperty = Mock.Of <IPropertyInfo>();

            var rule = new PollSubmissionPollDeletedFlagRule(
                pollDeletedFlagProperty.Object, isActiveProperty);

            var context = new RuleContext(null, rule, null,
                                          new Dictionary <IPropertyInfo, object>
            {
                { pollDeletedFlagProperty.Object, true },
                { isActiveProperty, true }
            });

            (rule as IBusinessRule).Execute(context);

            Assert.AreEqual(1, context.Results.Count, nameof(context.Results));
            Assert.IsFalse((bool)context.OutputPropertyValues[isActiveProperty]);

            pollDeletedFlagProperty.VerifyAll();
        }
		public void ExecuteWhenFlagIsNotNullAndTrue()
		{
			var pollDeletedFlagProperty = new Mock<IPropertyInfo>();
			pollDeletedFlagProperty.Setup(_ => _.Name).Returns("PollDeletedFlag");
			var isActiveProperty = new Mock<IPropertyInfo>();
			isActiveProperty.Setup(_ => _.Name).Returns("IsActive");

			var rule = new PollSubmissionPollDeletedFlagRule(
				pollDeletedFlagProperty.Object, isActiveProperty.Object);

			var context = new RuleContext(null, rule, null,
				new Dictionary<IPropertyInfo, object> 
				{ 
					{ pollDeletedFlagProperty.Object, true },
					{ isActiveProperty.Object, true }
				});
			(rule as IBusinessRule).Execute(context);

			Assert.AreEqual(1, context.Results.Count, context.GetPropertyName(_ => _.Results));
			Assert.IsFalse((bool)context.OutputPropertyValues[isActiveProperty.Object]);
		}
		public void ExecuteWhenFlagIsNotNullAndFalse()
		{
			var pollDeletedFlagProperty = new Mock<IPropertyInfo>(MockBehavior.Strict);
			pollDeletedFlagProperty.Setup(_ => _.Name).Returns("PollDeletedFlag");

			var isActiveProperty = Mock.Of<IPropertyInfo>();

			var rule = new PollSubmissionPollDeletedFlagRule(
				pollDeletedFlagProperty.Object, isActiveProperty);

			var context = new RuleContext(null, rule, null,
				new Dictionary<IPropertyInfo, object> 
				{ 
					{ pollDeletedFlagProperty.Object, false },
					{ isActiveProperty, true }
				});
			(rule as IBusinessRule).Execute(context);

			Assert.AreEqual(0, context.Results.Count, context.GetPropertyName(_ => _.Results));
			Assert.IsNull(context.OutputPropertyValues);

			pollDeletedFlagProperty.VerifyAll();
		}