public void GetInstance_WithPerResolveInstanceInGraph_ReusesSameInstanceThroughoutGraph()
        {
            // Arrange
            var container = new Container();

            PerGraphLifestyle.EnableFor(container);

            container.Register <C>(new PerGraphLifestyle());

            // Act
            var a = container.GetInstance <A>();

            // Assert
            Assert.AreSame(a.C, a.B.C);
        }
        public void GetInstance_WithPerResolveInstanceInGraphAndGraphTornByGetInstance_ReturnsNewInstanceWithDifferentGetInstance()
        {
            // Arrange
            var container = new Container();

            PerGraphLifestyle.EnableFor(container);

            container.Register <C>(new PerGraphLifestyle());
            container.Register <B>(() => new B(container.GetInstance <C>()));

            // Act
            var a = container.GetInstance <A>();

            // Assert
            Assert.AreNotSame(a.C, a.B.C);
        }
        public void GetInstance_WithPerResolveInstanceInGraph_ReturnsNewInstanceWithDifferentGetInstance()
        {
            // Arrange
            var container = new Container();

            PerGraphLifestyle.EnableFor(container);

            container.Register <C>(new PerGraphLifestyle());

            // Act
            var a1 = container.GetInstance <A>();
            var a2 = container.GetInstance <A>();

            // Assert
            Assert.AreNotSame(a1.C, a2.C);
        }