public void Resolve_using_request_can_get_registered_service_without_name(IServiceRegistrationProvider provider, [Registration] IServiceRegistration registration, ResolutionRequest request) { // Arrange var sut = GetSut(provider); var instance = new SampleServiceImplementationOne(); Mock.Get(provider) .Setup(x => x.CanFulfilRequest(request)) .Returns(false); Mock.Get(provider) .Setup(x => x.Get(request)) .Returns((IServiceRegistration)null); Mock.Get(provider) .Setup(x => x.CanFulfilRequest(It.Is <ResolutionRequest>(r => r.ServiceType == request.ServiceType && r.Name == null))) .Returns(true); Mock.Get(provider) .Setup(x => x.Get(It.Is <ResolutionRequest>(r => r.ServiceType == request.ServiceType && r.Name == null))) .Returns(registration); Mock.Get(registration) .Setup(x => x.GetFactoryAdapter(request)) .Returns(new InstanceFactory(instance)); // Act var result = sut.Resolve(request); // Assert Assert.That(result.ResolvedObject, Is.SameAs(instance)); }
public void Has_returns_true_for_a_named_service_type_after_it_is_added([Registration(ServiceType = typeof(ISampleService), Name = "A name")] IServiceRegistration registration, ResolvedServiceCache sut, SampleServiceImplementationOne instance) { // Act sut.Add(registration, instance); var result = sut.Has(new ServiceRegistrationKey(typeof(ISampleService), registration.Name)); // Assert Assert.That(result, Is.True); }
public void TryGet_returns_cached_instance_for_an_added_service([Registration(ServiceType = typeof(ISampleService))] IServiceRegistration registration, ResolvedServiceCache sut, SampleServiceImplementationOne instance) { // Act sut.Add(registration, instance); object cached; var result = sut.TryGet(registration, out cached); // Assert Assert.That(result, Is.True); Assert.That(cached, Is.SameAs(instance)); }
public void RegisterInstance_can_create_an_instance_registration(RegistrationHelper sut, SampleServiceImplementationOne instance) { // Act sut.RegisterInstance(instance); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <InstanceRegistration>()); var matchingReg = registrations.FirstOrDefault(x => x is InstanceRegistration); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(SampleServiceImplementationOne))); }
public void RegisterInstance_uses_inferred_type(RegistrationHelper sut, SampleServiceImplementationOne instance) { // Act ISampleService regInstance = instance; sut.RegisterInstance(regInstance); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <InstanceRegistration>()); var matchingReg = registrations.FirstOrDefault(x => x is InstanceRegistration); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(ISampleService))); }
public void Can_resolve_an_instance_lazily() { // Arrange var hasBeenResolved = false; var container = Container.CreateBuilder().SupportResolvingLazyInstances().Build(); container.AddRegistrations(r => { r.RegisterFactory(() => { var output = new SampleServiceImplementationOne(); hasBeenResolved = true; return(output); }) .As <ISampleService>(); }); // Act var result = container.Resolve <Lazy <ISampleService> >(); // Assert Assert.That(hasBeenResolved, Is.False); Assert.That(result.Value, Is.InstanceOf <SampleServiceImplementationOne>()); Assert.That(hasBeenResolved, Is.True); }
public void Has_returns_false_for_a_service_which_was_added_under_a_different_name([Registration(ServiceType = typeof(ISampleService), Name = "A name")] IServiceRegistration registration, ResolvedServiceCache sut, SampleServiceImplementationOne instance) { // Act sut.Add(registration, instance); var result = sut.Has(new ServiceRegistrationKey(typeof(SampleServiceImplementationOne), "Other name")); // Assert Assert.That(result, Is.False); }