Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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));
        }