public void AddConcreteMixedTypeAttribute(IMutableMember member, ClassContext classContext, IEnumerable <Type> orderedMixinTypes) { ArgumentUtility.CheckNotNull("member", member); ArgumentUtility.CheckNotNull("classContext", classContext); ArgumentUtility.CheckNotNull("orderedMixinTypes", orderedMixinTypes); var attributeData = ConcreteMixedTypeAttribute.FromClassContext(classContext, orderedMixinTypes.ToArray()); var attribute = new CustomAttributeDeclaration( s_concreteMixedTypeAttributeConstructor, new object[] { attributeData.ClassContextData, attributeData.OrderedMixinTypes }); member.AddCustomAttribute(attribute); }
public void GetMetadataForMixedType() { var classContext1 = ClassContextObjectMother.Create(typeof(object)); var attribute1 = ConcreteMixedTypeAttribute.FromClassContext(classContext1, new Type[0]); var typeMock = MockRepository.GenerateMock <_Type> (); typeMock.Expect(mock => mock.GetCustomAttributes(typeof(ConcreteMixedTypeAttribute), false)).Return(new[] { attribute1 }); typeMock.Replay(); var importer = new AttributeBasedMetadataImporter(); var result = importer.GetMetadataForMixedType(typeMock); Assert.That(result, Is.EqualTo(classContext1)); typeMock.VerifyAllExpectations(); }
private ConcreteMixedTypeAttribute CreateAttribute(ClassContext context) { return(ConcreteMixedTypeAttribute.FromClassContext(context, context.Mixins.Select(m => m.MixinType).ToArray())); }