public void ShouldThrowValidationExceptionWhenOptionsAreInvalid() { // Arrange var testOptions = new TestOptions(); var optionsMock = new Mock <IOptions <TestOptions> >(); optionsMock.Setup(x => x.Value).Returns(testOptions); var optionsProvider = new OptionsProvider <TestOptions>(optionsMock.Object); // Act + Assert ((Action)(() => optionsProvider.Get())).ShouldThrow <ArgumentNullException>().Which.ParamName.Should().Be("Option"); }
public void ShouldGetOptions() { // Arrange var testOptions = new TestOptions() { Option = "option" }; var optionsMock = new Mock <IOptions <TestOptions> >(); optionsMock.Setup(x => x.Value).Returns(testOptions); var optionsValue = new OptionsProvider <TestOptions>(optionsMock.Object); // Act + Assert optionsValue.Get().Should().BeSameAs(testOptions); }
private static (NtradaOptions, OptionsProvider) BuildConfiguration(IServiceCollection services) { IConfiguration config; using (var scope = services.BuildServiceProvider().CreateScope()) { config = scope.ServiceProvider.GetService <IConfiguration>(); } var optionsProvider = new OptionsProvider(config); services.AddSingleton <IOptionsProvider>(optionsProvider); var configuration = optionsProvider.Get <NtradaOptions>(); services.AddSingleton(configuration); return(configuration, optionsProvider); }