private static IRulesProvider MakeMockRuleProvider(Type forModelType, params string[] rulePropertyNames)
 {
     var ruleset = new RuleSet(rulePropertyNames.ToLookup(x => x, x => (Rule)new RequiredRule()));
     var mockProvider = new Moq.Mock<IRulesProvider>();
     mockProvider.Expect(x => x.GetRulesFromType(forModelType)).Returns(ruleset);
     return mockProvider.Object;
 }
예제 #2
0
        public void IRuleProvider_Has_GetRulesFromType_Method()
        {
            // Arrange
            var arbitraryType = this.GetType();
            var mockRuleProvider = new Moq.Mock<IRulesProvider>();
            mockRuleProvider.Expect(x => x.GetRulesFromType(arbitraryType))
                            .Returns(RuleSet.Empty);

            // Act
            var actualResult = mockRuleProvider.Object.GetRulesFromType(arbitraryType);

            // Assert
            Assert.Same(RuleSet.Empty, actualResult);
        }
        public void GetRulesForType_Can_Handle_Provider_Returning_NULL()
        {
            // Arrange
            var mockProvider = new Moq.Mock<IRulesProvider>();
            mockProvider.Expect(x => x.GetRulesFromType(typeof(double)))
                        .Returns((RuleSet)null);
            ActiveRuleProviders.Providers.Clear();
            ActiveRuleProviders.Providers.Add(mockProvider.Object);

            // Act
            var rules = ActiveRuleProviders.GetRulesForType(typeof (double));

            // Assert
            Assert.NotNull(rules);
            Assert.Empty(rules.Keys);
        }