public void Ctor() { // arrange var inputProperties = new List<IPropertyInfo> { ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, ProcessScheduleEdit.ScheduleDisplayDateFieldProperty }; var affectedProperties = new List<IPropertyInfo> { ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, ProcessScheduleEdit.ScheduleDisplayDateFieldProperty }; // act var rule = new ScheduleDateRule(ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, ProcessScheduleEdit.ScheduleDisplayDateFieldProperty); // assert CollectionAssert.AreEqual(inputProperties, rule.InputProperties); CollectionAssert.AreEqual(affectedProperties, rule.AffectedProperties); }
public void Execute() { // arrange var rule = new ScheduleDateRule(null, null); var context = Mock.Create<RuleContext>(Constructor.Mocked, Behavior.CallOriginal); Mock.Arrange(() => context.InputPropertyValues) .Returns(new Dictionary<IPropertyInfo, object> { { ProcessScheduleEdit.ScheduleDisplayDateFieldProperty, null }, { ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, 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.ScheduleDisplayDateFieldProperty, string.Empty }, { ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, 0 } }); // act privateAccessor.CallMethod("Execute", new object[] { context }); // assert Assert.IsTrue(ruleWasThrown); // arrange ruleWasThrown = false; Mock.Arrange(() => context.InputPropertyValues) .Returns( new Dictionary<IPropertyInfo, object> { { ProcessScheduleEdit.ScheduleDisplayDateFieldProperty, "DueDate_f" }, { ProcessScheduleEdit.HighlightScheduleDisplayDateProperty, 0 } }); // act privateAccessor.CallMethod("Execute", new object[] { context }); // assert Assert.IsFalse(ruleWasThrown); }