public void AddAssemblyFrom_Adds_Contained_Rules_To_ActiveRules()
        {
            _catalog.AddAssemblyFrom(GetType().Assembly.Location);
            Assert.That(_catalog.Rules.Count(), Is.EqualTo(1));
            Assert.That(_catalog.ActiveRules.Count(), Is.EqualTo(1));
            Assert.That(_catalog.InactiveRules.Count(), Is.EqualTo(0));

            IJudgeSql rule = _catalog.ActiveRules.First();

            Assert.That(rule, Is.InstanceOf(typeof(StubbedRule)));
        }
Example #2
0
        public void RunBeforeEachTest()
        {
            _engine = null;

            _parser1 = MockRepository.GenerateMock<IParseSql>();
            _parser2 = MockRepository.GenerateMock<IParseSql>();
            _parsers = new List<IParseSql> { _parser1, _parser2 };

            _rule1 = MockRepository.GenerateMock<IJudgeSql>();
            _rule2 = MockRepository.GenerateMock<IJudgeSql>();
            _activeRules = new List<IJudgeSql> { _rule1, _rule2 };

            _catalog = MockRepository.GenerateMock<ICatalogRules>();
            _catalog.Stub(c => c.ActiveRules).Return(_activeRules);
        }
 private void LoadTypesFromAssembly(Assembly a)
 {
     foreach (Type type in a.GetExportedTypes())
     {
         if (type.IsClass && typeof(IJudgeSql).IsAssignableFrom(type))
         {
             try
             {
                 object o = type.GetConstructor(Type.EmptyTypes)
                            .Invoke(null);
                 IJudgeSql rule = (IJudgeSql)o;
                 AddActiveRule(rule);
             }
             catch (NullReferenceException) {}
             catch (InvalidCastException) {}
         }
     }
 }
 private void AddRule(IJudgeSql rule, List<IJudgeSql> target)
 {
     if(rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     List<IJudgeSql> other = target == _activeRules? _inactiveRules : _activeRules;
     other.RemoveAll(r => r.CanonicalName == rule.CanonicalName);
     IEnumerable<IJudgeSql> found;
     found = target.Where(r => r.CanonicalName == rule.CanonicalName);
     if(found.Count() > 0 && found.Any(r => !r.Equals(rule)))
     {
         throw new DuplicateCanonicalNameException(rule.CanonicalName);
     }
     else if(found.Count() == 0)
     {
         target.Add(rule);
     }
 }
 public void AddInactive(IJudgeSql rule)
 {
     AddRule(rule, _inactiveRules);
 }
 public void AddActive(IJudgeSql rule)
 {
     AddRule(rule, _activeRules);
 }
 protected void AddActiveRule(IJudgeSql rule)
 {
     _catalog.AddActive(rule);
 }
Example #8
0
 protected void AddActiveRule(IJudgeSql rule)
 {
     _catalog.AddActive(rule);
 }