Пример #1
0
        public void AnonymousInstanceResolvesToProvidedObject()
        {
            // Arrange
            var instance = new ConcreteTypeThree(28);
            var c = new InterfaceResolver();
            c.Register<IRootType, ConcreteTypeThree>().AsInstance(instance);
            instance.ChangeValue(55);

            // Act
            var resolve1 = c.Resolve<IRootType>();
            var resolve2 = c.Resolve<IRootType>();

            // Assert
            Assert.AreSame(resolve1, resolve2);
            Assert.AreSame(resolve1, instance);
            Assert.AreEqual(55, resolve1.GetFinalValue());
        }
Пример #2
0
        public void ResolveRegisteredDelegateWithSpecificObjectReturnsSameObject()
        {
            // Arrange
            var c = new InterfaceResolver();
            const int i = 84;
            var d = new ConcreteTypeThree(i);
            c.Register<IRootType, ConcreteTypeThree>().AsDelegate(() => d);

            // Act
            var resolve = c.Resolve<IRootType>();
            var resolve2 = c.Resolve<IRootType>();

            // Assert
            Assert.AreSame(resolve, resolve2);
            Assert.AreEqual(i, resolve.GetFinalValue());
            Assert.AreEqual(i, resolve2.GetFinalValue());
        }