Example #1
0
        public void SinglePropertyDependency_InjectPropertyDependencies_Should_Inject_Service()
        {
            // Arrange
            var dependencySelector = new Mock <IAspectDependencySelector>();

            dependencySelector.Setup(s => s.SelectPropertyDependencies(It.IsAny <Type>()))
            .Returns(new[]
            {
                new AspectPropertyDependency(
                    new DependencyAttribute(),
                    typeof(SinglePublicPropertyDependencyAspect)
                    .GetProperty(nameof(SinglePublicPropertyDependencyAspect.Dependency))),
            });

            var dependencyService  = new object();
            var dependencyProvider = new Mock <IDependencyProvider>();

            dependencyProvider.Setup(c => c.GetService(typeof(object))).Returns(dependencyService);

            var injector = new AspectDependencyInjector(
                dependencyProvider.Object.ToInstanceHolder(),
                dependencySelector.Object.ToInstanceHolder());

            var aspect = new SinglePublicPropertyDependencyAspect();

            // Act
            injector.InjectPropertyDependencies(aspect);

            // Assert
            Assert.Equal(dependencyService, aspect.Dependency);
        }
 /// <summary>
 /// Freezes components (prohibits assignment of components inside component holders).
 /// </summary>
 public void Freeze()
 {
     DependencyHolder.Freeze();
     AspectSelector.Freeze();
     AspectWeavePredicate.Freeze();
     AspectDeclarationCollector.Freeze();
     PipelineFactory.Freeze();
     AspectFactory.Freeze();
     AspectDependencyInjector.Freeze();
     AspectOrderStrategy.Freeze();
     WeaveDataProviderFactory.Freeze();
     AspectFinalizer.Freeze();
 }