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())); }