public void Resolve_does_not_use_proxied_resolver_if_item_was_cached(IResolver proxiedResolver, [Registration] IServiceRegistration registration, ICachesResolvedServiceInstances cache, ResolutionRequest request, ISampleService cached) { // Arrange object cachedItem = cached; Mock.Get(proxiedResolver).Setup(x => x.GetRegistration(request)).Returns(registration); Mock.Get(cache).Setup(x => x.TryGet(registration, out cachedItem)).Returns(true); var sut = new CachingResolverProxy(proxiedResolver, cache); // Act var result = sut.Resolve(request); // Assert Mock.Get(proxiedResolver).Verify(x => x.Resolve(It.IsAny <ResolutionRequest>()), Times.Never); }
public void Resolve_does_not_add_anything_to_the_cache_if_resolution_fails(IResolver proxiedResolver, [Registration] IServiceRegistration registration, ICachesResolvedServiceInstances cache, ResolutionRequest request, ResolutionPath resolutionPath) { // Arrange object cachedItem = null; Mock.Get(proxiedResolver).Setup(x => x.GetRegistration(request)).Returns(registration); Mock.Get(proxiedResolver).Setup(x => x.Resolve(request)).Returns(ResolutionResult.Failure(resolutionPath)); Mock.Get(cache).Setup(x => x.TryGet(registration, out cachedItem)).Returns(false); var sut = new CachingResolverProxy(proxiedResolver, cache); // Act var result = sut.Resolve(request); // Assert Mock.Get(cache).Verify(x => x.Add(registration, It.IsAny <object>()), Times.Never); }
public void Resolve_returns_instance_from_cache_if_it_exists_there(IResolver proxiedResolver, [Registration] IServiceRegistration registration, ICachesResolvedServiceInstances cache, ResolutionRequest request, ISampleService cached) { // Arrange object cachedItem = cached; Mock.Get(proxiedResolver).Setup(x => x.GetRegistration(request)).Returns(registration); Mock.Get(cache).Setup(x => x.TryGet(registration, out cachedItem)).Returns(true); var sut = new CachingResolverProxy(proxiedResolver, cache); // Act var result = sut.Resolve(request); // Assert Assert.That(result.IsSuccess, Is.True); Assert.That(result.ResolvedObject, Is.SameAs(cached)); }
public void Resolve_does_not_add_anything_to_the_cache_if_it_is_not_cacheable(IResolver proxiedResolver, [Registration(Cacheable = false)] IServiceRegistration registration, ICachesResolvedServiceInstances cache, ResolutionRequest request, ISampleService resolved, ResolutionPath resolutionPath) { // Arrange object cachedItem = null; Mock.Get(proxiedResolver).Setup(x => x.GetRegistration(request)).Returns(registration); Mock.Get(proxiedResolver).Setup(x => x.Resolve(request)).Returns(ResolutionResult.Success(resolutionPath, resolved)); Mock.Get(cache).Setup(x => x.TryGet(registration, out cachedItem)).Returns(false); var sut = new CachingResolverProxy(proxiedResolver, cache); // Act var result = sut.Resolve(request); // Assert Mock.Get(cache).Verify(x => x.Add(registration, resolved), Times.Never); }
public void Resolve_resolves_from_proxied_resolver_if_item_is_not_cached(IResolver proxiedResolver, [Registration] IServiceRegistration registration, ICachesResolvedServiceInstances cache, ResolutionRequest request, ISampleService resolved, ResolutionPath resolutionPath) { // Arrange object cachedItem = null; Mock.Get(proxiedResolver).Setup(x => x.GetRegistration(request)).Returns(registration); Mock.Get(proxiedResolver).Setup(x => x.Resolve(request)).Returns(ResolutionResult.Success(resolutionPath, resolved)); Mock.Get(cache).Setup(x => x.TryGet(registration, out cachedItem)).Returns(false); var sut = new CachingResolverProxy(proxiedResolver, cache); // Act var result = sut.Resolve(request); // Assert Assert.That(result.IsSuccess, Is.True); Assert.That(result.ResolvedObject, Is.SameAs(resolved)); }