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(); }