public void GivenMockInputsThenConstructsSectionAsExpected()
        {
            const string id          = "Id";
            const string sectionCode = "Section code";
            const string sectionName = "Section name";

            var mockIdGenerator = new Mock <IIdGenerator>();

            mockIdGenerator.Setup(x => x.Generate()).Returns(id);

            var mockDobihRecord = new Mock <IDobihRecord>();

            mockDobihRecord.Setup(x => x.SectionCode).Returns(sectionCode);
            mockDobihRecord.Setup(x => x.SectionName).Returns(sectionName);

            var mockDobihFile = new Mock <IDobihFile>();

            mockDobihFile.Setup(x => x.Records).Returns(new List <IDobihRecord> {
                mockDobihRecord.Object
            });

            var sut = new SectionProvider(mockIdGenerator.Object, mockDobihFile.Object);

            var actual = sut.GetByDobihId(sectionName);

            Assert.That(actual.Id, Is.EqualTo(id));
            Assert.That(actual.Name, Is.EqualTo(sectionName));
        }
 public void BeforeEach()
 {
     _mappingStrategy     = new Mock <IMappingStrategy>();
     _nameConvention      = new Mock <ISectionNameConvention>();
     _configurationSystem = new Mock <IConfigurationSystem>();
     _mappingStrategy.Setup(ms => ms.SectionNameFor <IFoo>()).Returns(SectionName);
     _sut = new SectionProvider(_nameConvention.Object, _configurationSystem.Object);
 }
        private void BuildParameterProvider(IByContextSettings settings, SectionProvider provider, Parameter parameter, PropertyInfo parameterPropertyInfo)
        {
            if (string.IsNullOrEmpty(parameter.TypeName))
            {
                parameter.TypeName = parameterPropertyInfo.PropertyType.AssemblyQualifiedName;
            }
            else if (!parameterPropertyInfo.PropertyType.IsAssignableFrom(Type.GetType(parameter.TypeName, true)))
            {
                throw new InvalidParameterConfiguration(string.Format("Specified type {0} for parameter {1} is not assignable to the property of type {2}", parameter.TypeName, parameter.Name,parameterPropertyInfo.PropertyType.FullName));
            }

            /*var valueProvider = new ParameterToParameterValueProviderConverter().Convert(parameter, settings);*/
            var valueProvider = new ParameterToQueryEngineParameterValueProviderConverter().Convert(parameter, settings);

            provider.ParameterValuesProviders.Add(parameterPropertyInfo.Name, valueProvider);
        }
        public ISectionProvider Convert(Section section, IByContextSettings settings)
        {
            try
            {
                Type sectionType = Type.GetType(section.TypeName, true);

                var binder = this.GetModelBinderForSection(sectionType, section, settings);

                var provider = new SectionProvider { SectionType = sectionType, ModelBinder = binder };

                this.BuildParametersProviders(section, settings, provider, sectionType);

                return provider;
            }
            catch (Exception e)
            {
                throw new SessionToProviderConvertionFailed(section, e);
            }
        }
        private void BuildParametersProviders(Section section, IByContextSettings settings, SectionProvider provider, Type sectionType)
        {
            var properties = sectionType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (Parameter parameter in section.Parameters.Values)
            {
                var parameterPropertyInfo = properties.SingleOrDefault(x => x.Name.ToLower() == parameter.Name.ToLower());

                if (parameterPropertyInfo == null)
                {
                    if(settings.ThrowIfParameterMemberMissing)
                    {
                        throw new MemberNotFoundForParameter(parameter);
                    }
                }
                else
                {
                    this.BuildParameterProvider(settings, provider, parameter, parameterPropertyInfo);
                }
            }
        }
Ejemplo n.º 6
0
 public void BeforeEach()
 {
     _configurationSystem = new Mock <IConfigurationSystem>();
     _nameConvention      = new Mock <ISectionNameConvention>();
     _sut = new SectionProvider(_nameConvention.Object, _configurationSystem.Object);
 }