public void RemoveAffectedMixins_KeepsBaseType()
        {
            var rule       = new MixinTreeSuppressionRule(typeof(string));
            var dictionary = CreateContextDictionary(typeof(object), typeof(double));

            rule.RemoveAffectedMixins(dictionary);

            Assert.That(dictionary.Keys, Is.EquivalentTo(new[] { typeof(object), typeof(double) }));
        }
        public void RemoveAffectedMixins_RemovesDerivedGenericTypeSpecialization()
        {
            var rule       = new MixinTreeSuppressionRule(typeof(GenericMixinWithVirtualMethod <>));
            var dictionary = CreateContextDictionary(typeof(DerivedGenericMixin <string>), typeof(double));

            rule.RemoveAffectedMixins(dictionary);

            Assert.That(dictionary.Keys, Is.EquivalentTo(new[] { typeof(double) }));
        }
        public void RemoveAffectedMixins_RemovesDerivedType()
        {
            var rule       = new MixinTreeSuppressionRule(typeof(object));
            var dictionary = CreateContextDictionary(typeof(string), typeof(double));

            rule.RemoveAffectedMixins(dictionary);

            Assert.That(dictionary.Keys, Is.Empty);
        }