public void ReleaseInstance_NullInstanceContext()
 {
     var data = new ServiceImplementationData();
     var container = new ContainerBuilder().Build();
     var provider = new AutofacInstanceProvider(container, data);
     object instance = new object();
     Assert.Throws<ArgumentNullException>(() => provider.ReleaseInstance(null, instance));
 }
 public void GetInstance_NullInstanceContext()
 {
     var data = new ServiceImplementationData();
     var container = new ContainerBuilder().Build();
     var provider = new AutofacInstanceProvider(container, data);
     var message = new TestMessage();
     Assert.Throws<ArgumentNullException>(() => provider.GetInstance(null, message));
 }
        public void ReleaseInstance_NullInstanceContext()
        {
            var    data      = new ServiceImplementationData();
            var    container = new ContainerBuilder().Build();
            var    provider  = new AutofacInstanceProvider(container, data);
            object instance  = new object();

            Assert.Throws <ArgumentNullException>(() => provider.ReleaseInstance(null, instance));
        }
        public void GetInstance_NullInstanceContext()
        {
            var data      = new ServiceImplementationData();
            var container = new ContainerBuilder().Build();
            var provider  = new AutofacInstanceProvider(container, data);
            var message   = new TestMessage();

            Assert.Throws <ArgumentNullException>(() => provider.GetInstance(null, message));
        }
        public void Ctor_StoresParameters()
        {
            var data      = new ServiceImplementationData();
            var container = new ContainerBuilder().Build();
            var provider  = new AutofacInstanceProvider(container, data);

            Assert.AreSame(data, provider.ServiceData, "The service implementation data was not stored.");
            Assert.AreSame(container, provider.Container, "The container was not stored.");
        }
        public void LifetimeScopeDisposedWhenExceptionThrownInServiceConstructor()
        {
            var builder = new ContainerBuilder();
            var released = false;
            builder.RegisterType<Disposable>().OnRelease(d => released = true);
            builder.RegisterType<BadService>();
            var container = builder.Build();
            var data = new ServiceImplementationData { ImplementationResolver = l => l.Resolve<BadService>() };
            var provider = new AutofacInstanceProvider(container, data);
            var context = new InstanceContext(new object());

            Assert.Throws<DependencyResolutionException>(() => provider.GetInstance(context));

            Assert.True(released);
        }
        public void LifetimeScopeDisposedWhenExceptionThrownInServiceConstructor()
        {
            var builder  = new ContainerBuilder();
            var released = false;

            builder.RegisterType <Disposable>().OnRelease(d => released = true);
            builder.RegisterType <BadService>();
            var container = builder.Build();
            var data      = new ServiceImplementationData {
                ImplementationResolver = l => l.Resolve <BadService>()
            };
            var provider = new AutofacInstanceProvider(container, data);
            var context  = new InstanceContext(new object());

            Assert.Throws <DependencyResolutionException>(() => provider.GetInstance(context));

            Assert.True(released);
        }