コード例 #1
0
        public void GetClosedMixinType_BindToTargetType()
        {
            var  instantiator = new MixinTypeCloser(typeof(BaseType3));
            Type t            = instantiator.GetClosedMixinType(typeof(BT3Mixin3 <,>));

            Assert.That(t, Is.EqualTo(typeof(BT3Mixin3 <BaseType3, IBaseType33>)));
        }
コード例 #2
0
        public void GetClosedMixinType_BindToTargetParameter()
        {
            var  instantiator = new MixinTypeCloser(typeof(GenericTargetClass <string>));
            Type t            = instantiator.GetClosedMixinType(typeof(GenericMixin <>));

            Assert.That(t, Is.EqualTo(typeof(GenericMixin <string>)));
        }
コード例 #3
0
        public void GetClosedMixinType_NonGenericMixin()
        {
            var  instantiator = new MixinTypeCloser(typeof(BaseType3));
            Type t            = instantiator.GetClosedMixinType(typeof(object));

            Assert.That(t, Is.EqualTo(typeof(object)));
        }
コード例 #4
0
        public void GetClosedMixinType_BindToConstraints()
        {
            var  instantiator = new MixinTypeCloser(typeof(BaseType3));
            Type t            = instantiator.GetClosedMixinType(typeof(BT3Mixin6 <,>));

            Assert.That(t, Is.EqualTo(typeof(BT3Mixin6 <IBT3Mixin6TargetCallDependencies, IBT3Mixin6NextCallDependencies>)));
        }
コード例 #5
0
        public TargetClassDefinition(ClassContext configurationContext)
            : base(configurationContext.Type)
        {
            ArgumentUtility.CheckNotNull("configurationContext", configurationContext);

            _receivedAttributes = new MultiDefinitionCollection <Type, AttributeIntroductionDefinition> (a => a.AttributeType);

            _configurationContext = configurationContext;
            _mixinTypeCloser      = new MixinTypeCloser(configurationContext.Type);
        }
コード例 #6
0
        public void GetClosedMixinType_PositionalAndTargetBound()
        {
            var instantiator = new MixinTypeCloser(typeof(GenericTargetClass <string>));

            instantiator.GetClosedMixinType(typeof(GenericMixinWithPositionalAndTargetBoundParameter <>));
        }
コード例 #7
0
        public void GetClosedMixinType_UnmappablePosition()
        {
            var instantiator = new MixinTypeCloser(typeof(BaseType1));

            instantiator.GetClosedMixinType(typeof(GenericMixin <>));
        }
コード例 #8
0
        public void GetClosedMixinType_BindToTargetAndConstraints()
        {
            var instantiator = new MixinTypeCloser(typeof(BaseType1));

            instantiator.GetClosedMixinType(typeof(GenericMixinWithDoubleBindingInformation <>));
        }
コード例 #9
0
        public void GetClosedMixinType_BindToInvalidTargetType()
        {
            var instantiator = new MixinTypeCloser(typeof(BaseType1));

            instantiator.GetClosedMixinType(typeof(BT3Mixin3 <,>));
        }
コード例 #10
0
        public void GetClosedMixinType_MixinWithoutBindingInformationThrows()
        {
            var instantiator = new MixinTypeCloser(typeof(BaseType3));

            instantiator.GetClosedMixinType(typeof(GenericMixinWithoutBindingInformation <>));
        }
コード例 #11
0
        public void GetClosedMixinType_MixinWithUnsatisfiableConstraintsThrows()
        {
            var instantiator = new MixinTypeCloser(typeof(BaseType3));

            instantiator.GetClosedMixinType(typeof(GenericMixinWithUnsatisfiableConstraints <>));
        }
コード例 #12
0
        public MixinDefinition GetMixinByConfiguredType(Type configuredType)
        {
            Type realType = MixinTypeCloser.GetClosedMixinType(configuredType);

            return(_mixins[realType]);
        }
コード例 #13
0
        public bool HasMixinWithConfiguredType(Type configuredType)
        {
            Type realType = MixinTypeCloser.GetClosedMixinType(configuredType);

            return(_mixins.ContainsKey(realType));
        }