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()); }
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()); }