public void CloneForSpecificType() { var mixins = new[] { CreateBT1Mixin1Context(), CreateBT2Mixin2Context() }; var interfaces = new[] { typeof(ICBT6Mixin1), typeof(ICBT6Mixin2) }; var source = new ClassContext(typeof(BaseType1), mixins, interfaces); var clone = source.CloneForSpecificType(typeof(BaseType2)); Assert.That(clone, Is.Not.EqualTo(source)); Assert.That(clone.Mixins, Is.EquivalentTo(mixins)); Assert.That(clone.ComposedInterfaces, Is.EquivalentTo(interfaces)); Assert.That(clone.Type, Is.EqualTo(typeof(BaseType2))); Assert.That(source.Type, Is.EqualTo(typeof(BaseType1))); }