public void BuildContext_NoInheritance() { _classBuilder.AddMixins <BT1Mixin1, BT1Mixin2>(); _classBuilder.AddComposedInterfaces <IBT6Mixin1, IBT6Mixin2>(); ClassContext builtContext = _classBuilder.BuildClassContext(); Assert.That(builtContext.Mixins.Count, Is.EqualTo(2)); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT1Mixin1)), Is.True); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT1Mixin2)), Is.True); Assert.That(builtContext.ComposedInterfaces.Count, Is.EqualTo(2)); Assert.That(builtContext.ComposedInterfaces, Has.Member(typeof(IBT6Mixin1))); Assert.That(builtContext.ComposedInterfaces, Has.Member(typeof(IBT6Mixin2))); }
public void BuildContext_ExtendParentContext() { var classContextBuilder = new ClassContextBuilder(_parentBuilderMock, typeof(BaseType2)); classContextBuilder.AddMixins <BT1Mixin1, BT1Mixin2> (); var parentContext = ClassContextObjectMother.Create(typeof(BaseType2), typeof(BT2Mixin1)); ClassContext builtContext = classContextBuilder.BuildClassContext(new[] { parentContext }); Assert.That(builtContext.Mixins.Count, Is.EqualTo(3)); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT2Mixin1)), Is.True); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT1Mixin1)), Is.True); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT1Mixin2)), Is.True); }
public void BuildContext_Suppression() { var classContextBuilder = new ClassContextBuilder(_parentBuilderMock, typeof(BaseType2)); classContextBuilder.AddMixins <BT1Mixin1, BT1Mixin2> (); classContextBuilder.SuppressMixins(typeof(IBT1Mixin1), typeof(BT5Mixin1), typeof(BT3Mixin3 <,>)); var inheritedContext = ClassContextObjectMother.Create(typeof(BaseType2), typeof(BT3Mixin1), typeof(BT3Mixin3 <IBaseType33, IBaseType33>)); var parentContext = ClassContextObjectMother.Create(typeof(BaseType2), typeof(BT5Mixin1), typeof(BT5Mixin2)); ClassContext builtContext = classContextBuilder.BuildClassContext(new[] { inheritedContext, parentContext }); Assert.That(builtContext.Mixins.Count, Is.EqualTo(3)); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT3Mixin1)), Is.True); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT5Mixin2)), Is.True); Assert.That(builtContext.Mixins.ContainsKey(typeof(BT1Mixin2)), Is.True); }
public void AddMixins_NonGeneric() { var origin = MixinContextOriginObjectMother.Create(); _classBuilderMock.Expect(mock => mock.AddMixins(origin, typeof(BT2Mixin1), typeof(BT3Mixin1), typeof(BT3Mixin2))) .CallOriginalMethod(OriginalCallOptions.CreateExpectation); _classBuilderMock.Expect(mock => mock.AddMixin(typeof(BT2Mixin1), origin)).Return(_mixinBuilderMock); _classBuilderMock.Expect(mock => mock.AddMixin(typeof(BT3Mixin1), origin)).Return(_mixinBuilderMock); _classBuilderMock.Expect(mock => mock.AddMixin(typeof(BT3Mixin2), origin)).Return(_mixinBuilderMock); _mockRepository.Replay(_classBuilderMock); var result = _classBuilderMock.AddMixins(origin, typeof(BT2Mixin1), typeof(BT3Mixin1), typeof(BT3Mixin2)); _mockRepository.Verify(_classBuilderMock); Assert.That(result, Is.SameAs(_classBuilderMock)); }