コード例 #1
0
        public void Resolve_AllSingletones_EqualObjects()
        {
            // Assign

            _provider.Register <Foo>(LifetimeType.Singleton);
            _provider.Register <Bar1>(LifetimeType.Singleton);
            _provider.Register <Bar2>(LifetimeType.Singleton);

            // Act

            var foo  = _provider.Resolve <Foo>();
            var foo2 = _provider.Resolve <Foo>();
            Foo foo3;
            Foo foo4;

            using (var scope = _provider.BeginLifetimeScope())
                foo3 = scope.Container.Resolve <Foo>();

            using (var scope = _provider.BeginLifetimeScope())
                foo4 = scope.Container.Resolve <Foo>();

            // Assert

            Assert.AreEqual(foo, foo2);
            Assert.AreEqual(foo, foo3);
            Assert.AreEqual(foo, foo4);
        }
コード例 #2
0
        public void BeginLifetimeScope_WithOnBeginLifetimeScopeEventSubscribed_EventFired()
        {
            // Arrange

            var eventFired = false;

            _provider.OnBeginLifetimeScope += delegate
            {
                eventFired = true;
            };

            // Act
            using var scope = _provider.BeginLifetimeScope();

            // Assert
            Assert.IsTrue(eventFired);
        }
コード例 #3
0
        public void ScopedResolve_NotRegistered_ActivationException()
        {
            // Act & Assert

            using (var scope = _provider.BeginLifetimeScope())
            {
                var ex = Assert.Throws <ActivationException>(() => scope.Resolver.Resolve <NonDepFoo>());
                Assert.That(ex.Message, Does.StartWith("No registration for type NonDepFoo could be found and an implicit registration could not be made."));
            }
        }
コード例 #4
0
 public void ScopedResolve_NotRegistered_ContainerException()
 {
     // Act & Assert
     using (var scope = _provider.BeginLifetimeScope())
     {
         var ex = Assert.Throws <ContainerException>(() => scope.Resolver.Resolve <NonDepFoo>());
         Assert.That(ex.Message, Does.StartWith("Unable to resolve"));
         Assert.That(ex.Message, Does.Contain("NonDepFoo (IsResolutionCall)"));
     }
 }
コード例 #5
0
        public void ScopedResolve_NotRegistered_ComponentNotFoundException()
        {
            // Act & Assert

            using (var scope = _provider.BeginLifetimeScope())
            {
                var ex = Assert.Throws <ComponentNotFoundException>(() => scope.Resolver.Resolve <NonDepFoo>());
                Assert.That(ex.Message,
                            Does.StartWith("No component for supporting the service Simplify.DI.TestsTypes.NonDepFoo was found"));
            }
        }
 public void ScopedResolve_NotRegistered_InvalidOperationException()
 {
     // Act & Assert
     using (var scope = _provider.BeginLifetimeScope())
     {
         var ex = Assert.Throws <InvalidOperationException>(() => scope.Resolver.Resolve <NonDepFoo>());
         Assert.That(ex.Message, Does.StartWith("No service for type 'Simplify.DI.TestsTypes.NonDepFoo' has been registered."));
     }
 }