public void InitializeInstanceWhenObjIsScoped()
		{
			var list = Mock.Of<IList>();

			IComponentRegistration registration = null;

			var registry = new Mock<IComponentRegistry>(MockBehavior.Strict);
			registry.Setup(_ => _.TryGetRegistration(It.IsAny<Service>(), out registration)).Returns(true);

			var scope = new Mock<ILifetimeScope>(MockBehavior.Strict);
			scope.SetupGet(_ => _.ComponentRegistry).Returns(registry.Object);
			scope.Setup(_ => _.ResolveComponent(registration, It.IsAny<IEnumerable<Parameter>>())).Returns(list);

			var container = new Mock<IContainer>(MockBehavior.Strict);
			container.Setup(_ => _.BeginLifetimeScope()).Returns(scope.Object);

			var target = new DependentTarget();

			new ObjectActivator(container.Object).InitializeInstance(target);

			Assert.AreSame(list, target.List);
			Assert.AreSame(scope.Object, target.Scope);

			container.VerifyAll();
			scope.VerifyAll();
			registry.VerifyAll();
		}
示例#2
0
        public void InitializeInstanceWhenObjIsScoped()
        {
            var list    = Mock.Of <IList>();
            var builder = new ContainerBuilder();

            builder.RegisterInstance(list).As <IList>();

            var target = new DependentTarget();

            var activator = new ObjectActivator(builder.Build(), new ActivatorCallContext());

            activator.InitializeInstance(target);

            Assert.AreSame(list, target.List);
        }
		public void FinalizeInstanceWhenObjIsScoped()
		{
			var list = Mock.Of<IList>();
			var scope = new Mock<ILifetimeScope>(MockBehavior.Strict);
			scope.Setup(_ => _.Dispose());

			var target = new DependentTarget { List = list, Scope = scope.Object };

			new ObjectActivator(Mock.Of<IContainer>()).FinalizeInstance(target);

			Assert.IsNull(target.List);
			Assert.IsNotNull(target.Scope);

			scope.VerifyAll();
		}