public void ConfigurationScannerTests_ShouldGetExpected() { var res = ConfigurationsScanner.GetConfigurationFiltered(typeof(AConfigClass)); Assert.NotNull(res); Assert.Equal("lala", res.SectionName); Assert.Equal(typeof(AConfigClass), res.ConfigurationType); }
public void Should_not_find_nested_public_configurations_for_internal_class() { var scanner = new ConfigurationsScanner( new[] { typeof(InternalConfigurationsScannerTestsData.DummyModel5MetadataConfiguration) }); var results = scanner.Select(r => r.MetadataConfigurationType).ToList(); Assert.DoesNotContain(typeof(DummyModel4InternalMetadataConfiguration), results); }
public void Should_find_configurations_for_types() { var scanner = new ConfigurationsScanner( new[] { typeof(DummyModel1MetadataConfiguration), typeof(DummyModel2MetadataConfiguration) }); var results = scanner.Select(r => r.MetadataConfigurationType).ToList(); Assert.Contains(typeof(DummyModel1MetadataConfiguration), results); Assert.Contains(typeof(DummyModel2MetadataConfiguration), results); }
public void Should_be_able_to_go_over_types_via_foreach() { var scanner = new ConfigurationsScanner( new[] { typeof(DummyModel1MetadataConfiguration), typeof(DummyModel2MetadataConfiguration) }); var results = new List <Type>(); scanner.ForEach(d => results.Add(d.MetadataConfigurationType)); Assert.Contains(typeof(DummyModel1MetadataConfiguration), results); Assert.Contains(typeof(DummyModel2MetadataConfiguration), results); }
public static IServiceCollection RegisterConfiguration <T>(this IServiceCollection services, IConfiguration config, Action <T> configure = null) where T : class, IConfigurationBase, new() { var res = ConfigurationsScanner.GetConfigurationFiltered(typeof(T)); if (res == null) { throw new ArgumentException($"{typeof(T).Name} does not comply with conventions!"); } var optsBuilder = services.AddOptions <T>(); if (configure != null) { optsBuilder = optsBuilder.Configure(configure); } optsBuilder.Bind(config.GetSection(res.SectionName)); return(services); }
public void ConfigurationScannerTests_ShouldGetNone() { var res = ConfigurationsScanner.GetConfigurationFiltered(typeof(object)); Assert.Null(res); }