public void NoServiceTest() { IServiceProvider serviceProvider = _services.BuildServiceProvider(); SomeSingleton singleton = serviceProvider.GetService <SomeSingleton>(); SomeSecondTransient someSecondTransient = serviceProvider.GetService <SomeSecondTransient>(); Assert.Null(singleton); Assert.Null(someSecondTransient); }
public void AddSingleton4Test() { _services.AddSingleton(provider => new SomeSingleton()); IServiceProvider serviceProvider = _services.BuildServiceProvider(); SomeSingleton first = serviceProvider.GetService <SomeSingleton>(); SomeSingleton second = serviceProvider.GetService <SomeSingleton>(); Assert.Equal(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); }
public void AddSingleton1Test() { _services.AddSingleton <SomeSingleton>(); IServiceProvider provider = _services.BuildServiceProvider(); SomeSingleton first = provider.GetService <SomeSingleton>(); SomeSingleton second = provider.GetService <SomeSingleton>(); Assert.Equal(second, first); Assert.Same(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); }
public void AddSingleton1Test() { IServiceCollection services = new ServiceCollection(); services.AddSingleton <SomeSingleton>(); IServiceProvider provider = services.BuildServiceProvider(); SomeSingleton first = provider.GetService <SomeSingleton>(); SomeSingleton second = provider.GetService <SomeSingleton>(); Assert.Equal(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); }
public void ComplexTest() { _services.AddSingleton <SomeSingleton>(); _services.AddTransient(provider => new SomeSecondTransient(provider.GetService <SomeSingleton>())); IServiceProvider serviceProvider = _services.BuildServiceProvider(); SomeSingleton sing = serviceProvider.GetService <SomeSingleton>(); SomeSecondTransient first = serviceProvider.GetService <SomeSecondTransient>(); SomeSecondTransient second = serviceProvider.GetService <SomeSecondTransient>(); Assert.NotEqual(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); Assert.Equal(1, sing.Counter); }
public void LastRegistrationUsedTest() { _services.AddSingleton <SomeSingleton>(() => throw new InvalidOperationException()); _services.AddSingleton <SomeSingleton>(() => throw new ArgumentNullException()); _services.AddSingleton <SomeSingleton>(); IServiceProvider provider = _services.BuildServiceProvider(); SomeSingleton first = provider.GetService <SomeSingleton>(); SomeSingleton second = provider.GetService <SomeSingleton>(); Assert.Equal(second, first); Assert.Same(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); }
public void DifferentRegistrationsTest() { _services.AddSingleton <SomeSingleton>(); _services.AddTransient <SomeSingleton>(); _services.AddSingleton <SomeSingleton>(); IServiceProvider provider = _services.BuildServiceProvider(); SomeSingleton first = provider.GetService <SomeSingleton>(); SomeSingleton second = provider.GetService <SomeSingleton>(); Assert.Equal(second, first); Assert.Same(second, first); Assert.Equal(1, first.Counter); Assert.Equal(1, second.Counter); }
public SomeSecondTransient(SomeSingleton singleton) { _singleton = singleton; }
public A(SomeSingleton someSingleton) { }