public void Resolving_a_factory_function_should_get_back_the_same_object_we_registered() { var registeredObject = new ClassWithNoArguments(); Func<IClass> factoryFunction = () => registeredObject; var registrar = new Registrar().Satisfy<IClass>().With(factoryFunction); var resolvedObject = new Resolver(registrar.Registrations).Resolve<IClass>(); Assert.That(ReferenceEquals(registeredObject, resolvedObject), Is.True, "the 2 object references are not the same"); }
public void Resolving_an_existing_object_should_get_the_same_object_back_that_we_registered() { var registeredObject = new ClassWithNoArguments(); var registrar = new Registrar().Satisfy<IClass>().With(registeredObject); var resolvedObject = new Resolver(registrar.Registrations).Resolve<IClass>(); Assert.That(ReferenceEquals(registeredObject, resolvedObject), Is.True, "the 2 object references are not the same"); }
public void Resolving_an_object_with_argument_of_type_that_has_been_registered_should_resolve_that_type_also() { var dependency = new ClassWithNoArguments(); var registrar = new Registrar().Satisfy<ClassWithSingleDependency>().With<ClassWithSingleDependency>() .Satisfy<ClassWithNoArguments>().With(dependency); var resolvedObject = new Resolver(registrar.Registrations).Resolve<ClassWithSingleDependency>(); Assert.That(resolvedObject, Is.InstanceOf<ClassWithSingleDependency>(), "expected resolved object to be of type ClassWithSingleDependency"); Assert.That(resolvedObject.Argument1, Is.EqualTo(dependency), "expected dependency to have been resolved also"); }
public ClassWithSingleDependency(ClassWithNoArguments argument1) { Argument1 = argument1; }