Esempio n. 1
0
        public void NoServiceTest()
        {
            IServiceProvider serviceProvider = _services.BuildServiceProvider();

            SomeSingleton       singleton           = serviceProvider.GetService <SomeSingleton>();
            SomeSecondTransient someSecondTransient = serviceProvider.GetService <SomeSecondTransient>();

            Assert.Null(singleton);
            Assert.Null(someSecondTransient);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 public SomeSecondTransient(SomeSingleton singleton)
 {
     _singleton = singleton;
 }
 public A(SomeSingleton someSingleton)
 {
 }