public void Resolve_returns_failure_result_if_container_cannot_be_resolved([ResolvesToFailure] IResolver proxiedResolver, [Registration] IServiceRegistration registration) { // Arrange var sut = new DynamicRecursionResolverProxy(proxiedResolver); var request = new ResolutionRequest(typeof(IResolvesServices), new ResolutionPath(registration)); // Act var result = sut.Resolve(request); // Assert Assert.That(result.IsSuccess, Is.False); }
public void Resolve_resolves_from_proxied_resolver_when_resolution_path_is_empty([ResolvesToFailure] IResolver proxiedResolver) { // Arrange var sut = new DynamicRecursionResolverProxy(proxiedResolver); var request = new ResolutionRequest(typeof(IResolvesServices), new ResolutionPath()); // Act sut.Resolve(request); // Assert Mock.Get(proxiedResolver).Verify(x => x.Resolve(request), Times.Once); Mock.Get(proxiedResolver).Verify(x => x.Resolve(It.Is <ResolutionRequest>(r => r != request)), Times.Never); }
public void Resolve_resolves_from_proxied_resolver_when_service_type_is_not_IResolvesServices([ResolvesToFailure] IResolver proxiedResolver, [Registration] IServiceRegistration registration) { // Arrange var sut = new DynamicRecursionResolverProxy(proxiedResolver); var request = new ResolutionRequest(typeof(ISampleService), new ResolutionPath(registration)); // Act sut.Resolve(request); // Assert Mock.Get(proxiedResolver).Verify(x => x.Resolve(request), Times.Once); Mock.Get(proxiedResolver).Verify(x => x.Resolve(It.Is <ResolutionRequest>(r => r != request)), Times.Never); }
public void Resolve_returns_container_within_proxy_when_applicable([ResolvesToFailure] IResolver proxiedResolver, [Registration] IServiceRegistration registration, IContainer container) { // Arrange var sut = new DynamicRecursionResolverProxy(proxiedResolver); var request = new ResolutionRequest(typeof(IResolvesServices), new ResolutionPath(registration)); Mock.Get(proxiedResolver) .Setup(x => x.Resolve(It.Is <ResolutionRequest>(r => r.ServiceType == typeof(IContainer)))) .Returns(ResolutionResult.Success(new ResolutionPath(), container)); // Act var result = sut.Resolve(request); // Assert Assert.That(result.IsSuccess, Is.True); Assert.That(result.ResolvedObject, Is.InstanceOf <ServiceResolvingContainerProxy>()); var proxy = (ServiceResolvingContainerProxy)result.ResolvedObject; Assert.That(proxy.ProxiedResolver, Is.SameAs(container)); }