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); } } }
public void BeforeEach() { _configurationSystem = new Mock <IConfigurationSystem>(); _nameConvention = new Mock <ISectionNameConvention>(); _sut = new SectionProvider(_nameConvention.Object, _configurationSystem.Object); }