public void CreateService_MultipleCalls_InvokesLambdaEachTime(int times) { // Arrange var serviceProvider = new Mock <IServiceProvider>(); var count = 0; var factory = new TransientServiceFactory(provider => { Assert.Equal(serviceProvider.Object, provider); count++; return(null); }); factory.Initialize(serviceProvider.Object); // Act foreach (var _ in Enumerable.Range(1, times)) { factory.CreateService(typeof(object)); } // Assert Assert.Equal(times, count); }
public void CreateService_NotInitialized_InvalidOperationException() { // Arrange var factory = new TransientServiceFactory(_ => null); // Act Assert.Throws <InvalidOperationException>(() => factory.CreateService(typeof(object))); }
public void GetService_LambdaRegistered_ReturnsService() { // Arrange var obj = new object(); var factory = new TransientServiceFactory(_ => 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 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); }