示例#1
0
        public void ShouldReturnANewImplementationInstanceWithEachResolutionRequest()
        {
            var container           = new Container();
            var lifecycleManager    = new TransientLifecycleManager();
            var registration        = new Registration(typeof(IAmATestInterface), typeof(ImplementationTest), lifecycleManager);
            var firstInstanceClass  = lifecycleManager.GetImplementationInstance(container, registration);
            var secondInstanceClass = lifecycleManager.GetImplementationInstance(container, registration);

            Assert.NotSame(firstInstanceClass, secondInstanceClass);
        }
            public void ReturnsTheResultOfTheFactoryMethodEachTimeItIsCalled()
            {
                // arrange
                Func <A> factory = () => new A();
                var      transientLifecycleManager = new TransientLifecycleManager <A>(factory);

                // act
                var a1 = transientLifecycleManager.GetObject();
                var a2 = transientLifecycleManager.GetObject();

                // assert
                Assert.NotNull(a1);
                Assert.NotNull(a2);
                Assert.NotEqual(a1, a2);
            }