public void ExecuteWhenEndDateIsAfterNow()
		{
			var pollEndDateProperty = new Mock<IPropertyInfo>();
			pollEndDateProperty.Setup(_ => _.Name).Returns("PollEndDate");
			var isActiveProperty = new Mock<IPropertyInfo>();
			isActiveProperty.Setup(_ => _.Name).Returns("IsActive");

			var rule = new PollSubmissionPollEndDateRule(
				pollEndDateProperty.Object, isActiveProperty.Object);

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

			Assert.AreEqual(0, context.Results.Count, context.GetPropertyName(_ => _.Results));
			Assert.IsNull(context.OutputPropertyValues, context.GetPropertyName(_ => _.OutputPropertyValues));
		}
		public void ExecuteWhenEndDateIsBeforeNow()
		{
			var pollEndDateProperty = new Mock<IPropertyInfo>(MockBehavior.Strict);
			pollEndDateProperty.Setup(_ => _.Name).Returns("PollEndDate");

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

			var rule = new PollSubmissionPollEndDateRule(
				pollEndDateProperty.Object, isActiveProperty);

			var context = new RuleContext(null, rule, null,
				new Dictionary<IPropertyInfo, object> 
				{ 
					{ pollEndDateProperty.Object, DateTime.UtcNow.AddDays(-2) },
					{ isActiveProperty, true }
				});
			(rule as IBusinessRule).Execute(context);

			Assert.AreEqual(1, context.Results.Count, context.GetPropertyName(_ => _.Results));
			Assert.IsFalse((bool)context.OutputPropertyValues[isActiveProperty]);

			pollEndDateProperty.VerifyAll();
		}