public void Execute_WhenCalledWithoutMethodName_AddsErrorResult() { // arrange var rule = new ESyncSchedulesShouldHaveUniqueNamesRule(SchedulerDescriptorEdit.ScheduleListProperty); var context = Mock.Create<RuleContext>(Constructor.Mocked, Behavior.CallOriginal); Mock.Arrange(() => context.InputPropertyValues) .Returns(new Dictionary<IPropertyInfo, object> { { SchedulerDescriptorEdit.ScheduleListProperty, new SchedulerDescriptorEdit() }, }); var scheduler = Mock.Create<SchedulerDescriptorEdit>(); var scheduleListMock = Mock.Create<ScheduleEditList>(Behavior.CallOriginal); var scheduleEditMock1 = Mock.Create<ScheduleEdit>(); Mock.Arrange(() => scheduleEditMock1.IsChild).Returns(true); Mock.Arrange(() => scheduleEditMock1.Name).Returns("1"); var scheduleEditMock2 = Mock.Create<ScheduleEdit>(); Mock.Arrange(() => scheduleEditMock2.IsChild).Returns(true); Mock.Arrange(() => scheduleEditMock2.Name).Returns("1"); scheduleListMock.Add(scheduleEditMock1); scheduleListMock.Add(scheduleEditMock2); Mock.Arrange(() => scheduler.ScheduleList).Returns(scheduleListMock); Mock.Arrange(() => scheduler.GetParent<ESyncProcessEdit>()).Returns(new ESyncProcessEdit()); Mock.Arrange(() => context.Target).Returns(scheduler); var ruleWasThrown = false; Mock.Arrange(() => context.AddErrorResult(Arg.AnyString)).DoInstead(() => ruleWasThrown = true); //Act var privateAccessor = new PrivateAccessor(rule); privateAccessor.CallMethod("Execute", new object[] { context }); // assert Assert.IsTrue(ruleWasThrown); }
public void Execute_WhenCalledWithMethodName_DoNotAddErrorResult() { // arrange var rule = new ESyncSchedulesShouldHaveUniqueNamesRule(SchedulerDescriptorEdit.ScheduleListProperty); var context = Mock.Create<RuleContext>(Constructor.Mocked, Behavior.CallOriginal); Mock.Arrange(() => context.InputPropertyValues) .Returns(new Dictionary<IPropertyInfo, object> { { SchedulerDescriptorEdit.ScheduleListProperty, Guid.NewGuid().ToString() }, }); var ruleWasThrown = false; Mock.Arrange(() => context.AddErrorResult(Arg.AnyString)).DoInstead(() => ruleWasThrown = true); //Act var privateAccessor = new PrivateAccessor(rule); privateAccessor.CallMethod("Execute", new object[] { context }); // assert Assert.IsFalse(ruleWasThrown); }