public void GetService_GenericAndSpecificRegistered_ReturnsSpecificService() { // Arrange var loggerFactory = new NullLoggerFactory(); var logger = new Logger <CouchbaseServiceProvider>(loggerFactory); var provider = new CouchbaseServiceProvider(new[] { new KeyValuePair <Type, IServiceFactory>(typeof(ILoggerFactory), new SingletonServiceFactory(loggerFactory)), new KeyValuePair <Type, IServiceFactory>(typeof(ILogger <>), new SingletonGenericServiceFactory(typeof(Logger <>))), new KeyValuePair <Type, IServiceFactory>(typeof(ILogger <CouchbaseServiceProvider>), new SingletonServiceFactory(logger)) }); // Act var result = provider.GetService(typeof(ILogger <CouchbaseServiceProvider>)); // Assert Assert.NotNull(result); var resultLogger = Assert.IsAssignableFrom <Logger <CouchbaseServiceProvider> >(result); Assert.Equal(logger, resultLogger); }
public void GetRequiredServiceT_Unregistered_InvalidOperationException() { // Arrange var provider = new CouchbaseServiceProvider(new KeyValuePair <Type, IServiceFactory>[] { }); // Act/Assert Assert.Throws <InvalidOperationException>(() => provider.GetRequiredService <IList <object> >()); }
public void GetService_IServiceProvider_ReturnsSelf() { // Arrange var provider = new CouchbaseServiceProvider(new KeyValuePair <Type, IServiceFactory>[] { }); // Act var result = provider.GetService(typeof(IServiceProvider)); // Assert Assert.Equal(provider, result); }
public void GetServiceT_Unregistered_ReturnsNull() { // Arrange var provider = new CouchbaseServiceProvider(new KeyValuePair <Type, IServiceFactory>[] { }); // Act var result = provider.GetService <IList <object> >(); // Assert Assert.Null(result); }
public void GetService_SingletonRegistered_ReturnsService() { // Arrange var obj = new object(); var factory = new SingletonServiceFactory(obj); var provider = new CouchbaseServiceProvider(new[] { new KeyValuePair <Type, IServiceFactory>(typeof(object), factory) }); // Act var result = provider.GetService(typeof(object)); // Assert Assert.Equal(obj, result); }
public void GetRequiredServiceT_LambdaRegistered_ReturnsService() { // Arrange var obj = new List <object>(); var factory = new TransientServiceFactory(_ => obj); var provider = new CouchbaseServiceProvider(new[] { new KeyValuePair <Type, IServiceFactory>(typeof(IList <object>), factory) }); // Act var result = provider.GetRequiredService <IList <object> >(); // Assert Assert.Equal(obj, result); }
public void GetService_LambdaRegistered_LambdaGetsServiceProvider() { // Arrange IServiceProvider?calledWith = null; var factory = new TransientServiceFactory(serviceProvider => { calledWith = serviceProvider; return(null); }); var provider = new CouchbaseServiceProvider(new[] { new KeyValuePair <Type, IServiceFactory>(typeof(object), factory) }); // Act provider.GetService(typeof(object)); // Assert Assert.Equal(provider, calledWith); }