public void GenerateXml_WithIntroducedAttributes()
        {
            var attributeIdentifierGenerator = new IdentifierGenerator<Type>();
              var mixinConfiguration = MixinConfiguration.BuildNew()
              .ForClass<UselessObject>().AddMixin<ObjectWithInheritableAttribute>()
              .BuildConfiguration();

              var type1 = new InvolvedType (typeof (UselessObject));
              type1.ClassContext = new ReflectedObject (mixinConfiguration.ClassContexts.First());

              var attributeIntroductions = GetAttributeIntroductions (type1, typeof (ObjectWithInheritableAttribute), mixinConfiguration);
              var reportGenerator = new AttributeIntroductionReportGenerator (
              attributeIntroductions, attributeIdentifierGenerator, Helpers.RemotionReflectorFactory.GetRemotionReflection ());

              var output = reportGenerator.GenerateXml();

              var expectedOutput = new XElement (
              "AttributeIntroductions",
              new XElement (
              "IntroducedAttribute",
              new XAttribute ("ref", "0")
              ));

              Assert.That (output.ToString(), Is.EqualTo (expectedOutput.ToString()));
        }
        public void GenerateXml_NoIntroducedAttribute()
        {
            var mixinConfiguration = MixinConfiguration.BuildNew()
              .ForClass<TargetClass2>().AddMixin<Mixin1>()
              .BuildConfiguration();

              var type1 = new InvolvedType (typeof (TargetClass2));
              type1.ClassContext = new ReflectedObject (mixinConfiguration.ClassContexts.First());

              var attributeIntroductions = GetAttributeIntroductions (type1, typeof (Mixin1), mixinConfiguration);
              var reportGenerator = new AttributeIntroductionReportGenerator (
              attributeIntroductions, new IdentifierGenerator<Type>(), Helpers.RemotionReflectorFactory.GetRemotionReflection ());
              var output = reportGenerator.GenerateXml();

              var expectedOutput = new XElement ("AttributeIntroductions");

              Assert.That (output.ToString(), Is.EqualTo (expectedOutput.ToString()));
        }