public void When_ConfigValue_Is_Missing() { var services = new ServiceCollection(); Environment.SetEnvironmentVariable(nameof(ITransactionEventApiConfiguration.TransactionStoreConnectionStringCsv), ""); Environment.SetEnvironmentVariable(nameof(ITransactionEventApiConfiguration.ShareName), ""); ClassInTest.ConfigureServices(services); Assert.That(() => services.BuildServiceProvider().GetRequiredService <ITransactionEventApiConfiguration>(), Throws.Exception.InstanceOf <ConfigurationBindException>().With.Message.EqualTo( "Error binding configuration: TransactionStoreConnectionStringCsv - Value must be at least 1 characters. Got " + Environment.NewLine + "ShareName - Value must be at least 1 characters. Got ")); }
public void Configuration_Can_Be_Parsed() { var services = new ServiceCollection(); ClassInTest.ConfigureServices(services); Environment.SetEnvironmentVariable(nameof(ITransactionEventApiConfiguration.TransactionStoreConnectionStringCsv), "string1,string2"); Environment.SetEnvironmentVariable(nameof(ITransactionEventApiConfiguration.ShareName), "transactions"); var config = services.BuildServiceProvider().GetRequiredService <ITransactionEventApiConfiguration>(); Assert.That(config.ShareName, Is.EqualTo("transactions")); Assert.That(config.TransactionStoreConnectionStringCsv, Is.EqualTo("string1,string2")); }
public void Can_Resolve_Transaction_Service() { var services = new ServiceCollection(); ClassInTest.ConfigureServices(services); Assert.That(services.Any(s => s.ServiceType == typeof(IEnumerable <ShareClient>)), "No share client was added"); Assert.That(services.Any(s => s.ServiceType == typeof(IEnumerable <IFileShare>)), "No file store was added"); services.Replace(new ServiceDescriptor(typeof(IEnumerable <ShareClient>), new [] { Mock.Of <ShareClient>() })); services.BuildServiceProvider().GetRequiredService <ITransactionService>(); }