public void Initialization_OnMethodInstantiation()
        {
            var parameter = CustomParameterInfoObjectMother.Create(type: _genericMethodParameter);

            var result = new MemberParameterOnInstantiation(_methodInstantiation, parameter);

            Assert.That(result.Member, Is.SameAs(_methodInstantiation));
            Assert.That(result.MemberParameterOnGenericDefinition, Is.SameAs(parameter));
            Assert.That(result.ParameterType, Is.SameAs(_typeArgument));
        }
        public void GetCustomAttributeData()
        {
            var customAttributes = new[] { CustomAttributeDeclarationObjectMother.Create() };
            var member           = MethodOnTypeInstantiationObjectMother.Create();
            var parameter        = CustomParameterInfoObjectMother.Create(member, customAttributes: customAttributes);

            var parameterInstantiation = new MemberParameterOnInstantiation(member, parameter);

            Assert.That(parameterInstantiation.GetCustomAttributeData(), Is.EqualTo(customAttributes));
        }
        public void Initialization_OnTypeInstantiation()
        {
            var parameter = CustomParameterInfoObjectMother.Create(type: _genericTypeParameter);

            var result = new MemberParameterOnInstantiation(_memberOnTypeInstantiation, parameter);

            Assert.That(result.Member, Is.SameAs(_memberOnTypeInstantiation));
            Assert.That(result.MemberParameterOnGenericDefinition, Is.SameAs(parameter));
            Assert.That(result.Position, Is.EqualTo(parameter.Position));
            Assert.That(result.Name, Is.EqualTo(parameter.Name));
            Assert.That(result.Attributes, Is.EqualTo(parameter.Attributes));
            Assert.That(result.ParameterType, Is.SameAs(_typeArgument));
        }