public void GenerateXml_WithIntroducedInterfaces()
        {
            var interfaceIdentifierGenerator = new IdentifierGenerator<Type>();
              var mixinConfiguration = MixinConfiguration.BuildNew()
              .ForClass<TargetClass2>().AddMixin<Mixin3>()
              .BuildConfiguration();

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

              // TargetClass2 does not implement any interface
              // Mixin3 introduces interface IDisposable
              var interfaceIntroductions = GetInterfaceIntroductions (type1, typeof (Mixin3), mixinConfiguration);
              var reportGenerator = new InterfaceIntroductionReportGenerator (interfaceIntroductions, interfaceIdentifierGenerator);

              var output = reportGenerator.GenerateXml();

              var expectedOutput = new XElement (
              "InterfaceIntroductions",
              new XElement (
              "IntroducedInterface",
              new XAttribute ("ref", "0")
              ));

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

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

              var interfaceIntroductions = GetInterfaceIntroductions (type1, typeof (Mixin2), mixinConfiguration);
              var reportGenerator = new InterfaceIntroductionReportGenerator (interfaceIntroductions, new IdentifierGenerator<Type>());

              var output = reportGenerator.GenerateXml();

              var expectedOutput = new XElement ("InterfaceIntroductions");

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