Esempio n. 1
0
        public void Construction_NewScope_ShouldHaveEmptyPropertiesDictionary()
        {
            var lifetimeScopeMock = new Mock <ILifetimeScope>();
            var scope             = new AutofacDependencyLifetimeScope(lifetimeScopeMock.Object);

            Assert.That(scope.Properties, Is.Not.Null);
            Assert.That(scope.Properties.Count, Is.EqualTo(0));
        }
Esempio n. 2
0
        public void Dispose_WithUsingStatement_ShouldFireScopeEndingEvent()
        {
            var lifetimeScopeMock = new Mock <ILifetimeScope>();
            var scopeEndingCalled = 0;

            using (var scope = new AutofacDependencyLifetimeScope(lifetimeScopeMock.Object))
                scope.ScopeEnding += e => scopeEndingCalled++;

            Assert.That(scopeEndingCalled, Is.EqualTo(1));
        }
Esempio n. 3
0
        public void ResolveDependency_PassingSomeDependencyType_ShouldResolveFromAutofacLifetimeScope()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <FakeConnection>();
            var container = builder.Build();

            var scope      = new AutofacDependencyLifetimeScope(container);
            var connection = scope.Resolve(typeof(FakeConnection));

            Assert.That(connection, Is.Not.Null);
            Assert.That(connection.GetType(), Is.EqualTo(typeof(FakeConnection)));
        }
Esempio n. 4
0
        public void Dispose_CalledMultipleTimes_ShouldFireScopeEndingEventOnlyOnce()
        {
            var lifetimeScopeMock = new Mock <ILifetimeScope>();
            var scopeEndingCalled = 0;

            var scope = new AutofacDependencyLifetimeScope(lifetimeScopeMock.Object);

            scope.ScopeEnding += e => scopeEndingCalled++;
            scope.Dispose();
            scope.Dispose();

            Assert.That(scopeEndingCalled, Is.EqualTo(1));
        }
Esempio n. 5
0
        public void ResolveDependency_PassingDependencyTypeThatResolvesAsNull_ShouldNotFireDependencyResolvedEvent()
        {
            var eventFired = false;

            var builder = new ContainerBuilder();

            builder.Register <FakeConnection>(ctx => null);
            var container = builder.Build();

            var scope = new AutofacDependencyLifetimeScope(container);

            scope.DependencyResolved += e => eventFired = true;

            Assert.Throws <DependencyResolutionException>(() => scope.Resolve(typeof(FakeConnection)));

            Assert.That(eventFired, Is.False);
        }
Esempio n. 6
0
        public void ResolveDependency_PassingKnownDependencyType_ShouldFireDependencyResolvedEvent()
        {
            DependencyResolvedEventArgs eventArgs = null;

            var builder = new ContainerBuilder();

            builder.RegisterType <FakeConnection>();
            var container = builder.Build();

            var scope = new AutofacDependencyLifetimeScope(container);

            scope.DependencyResolved += e =>
            {
                Assert.That(eventArgs, Is.Null);
                eventArgs = e;
            };

            Assert.That(scope.Resolve(typeof(FakeConnection)), Is.Not.Null);

            Assert.That(eventArgs, Is.Not.Null);
            Assert.That(eventArgs.LifetimeScope, Is.EqualTo(scope));
            Assert.That(eventArgs.DependencyType, Is.EqualTo(typeof(FakeConnection)));
            Assert.That(eventArgs.Dependency.GetType(), Is.EqualTo(typeof(FakeConnection)));
        }