public void CanRegisterTypeWithCircularReferenceTest() { var value = new Parent { Child = new Child() }; value.Child.Parent = value; var builder = new ContainerBuilder(); var resolver = new InstanceResolver(value); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); // There are several registrations which aren't expected because of Uri properties being resolved container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 2); container.Should().HaveRegistered <Parent>(); container.Should().HaveRegistered <Child>(); }
public void Resolve_ValidRequest_ReturnsInstance() { // Arrange var key = "test-flow"; var instanceId = new FormFlowInstanceId("the-instance", new RouteValueDictionary()); var stateType = typeof(TestState); var state = new TestState(); var stateProvider = new Mock <IUserInstanceStateProvider>(); stateProvider .Setup(s => s.GetInstance(instanceId)) .Returns(FormFlowInstance.Create(stateProvider.Object, key, instanceId, stateType, state, properties: new Dictionary <object, object>())); var instanceResolver = new InstanceResolver(stateProvider.Object); var httpContext = new DefaultHttpContext(); httpContext.Request.QueryString = new QueryString($"?ffiid={instanceId}"); var routeData = new RouteData(new RouteValueDictionary() { { "ffiid", instanceId } }); var actionDescriptor = new ActionDescriptor(); actionDescriptor.SetProperty(new FormFlowDescriptor(key, stateType, IdGenerationSource.RandomId)); var actionContext = new ActionContext(httpContext, routeData, actionDescriptor); // Act var result = instanceResolver.Resolve(actionContext); // Assert Assert.NotNull(result); Assert.Equal(key, result.Key); Assert.Equal(instanceId, result.InstanceId); Assert.Equal(stateType, result.StateType); }
private SimpleDependencyContainer(string scopeName, SimpleDependencyContainer parentContainer) { Ensure.NotNullOrEmpty(scopeName, "scopeName"); this.scopeName = scopeName; this.parentContainer = parentContainer; InstanceStorage instances = new InstanceStorage(); if (parentContainer == null) { this.definitions = new DependencyDefinitionCollection(scopeName, instances); } else { this.definitions = new DependencyDefinitionCollection(scopeName, instances, parentContainer.definitions); } this.resolver = new InstanceResolver(definitions, instances); definitions.Add(typeof(IDependencyContainer), DependencyLifetime.NameScope(scopeName), this); definitions.Add(typeof(IDependencyProvider), DependencyLifetime.NameScope(scopeName), this); }
public void MapsPropertyWithEnvironmentVariablesWhenPropertyValueMatchesEnvironmentVariable() { var builder = new ContainerBuilder(); var config = new EnvironmentValuesWithoutAttributes(); var resolver = new InstanceResolver(config); var expectedString = Guid.NewGuid().ToString(); Environment.SetEnvironmentVariable(config.StringData, expectedString); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); // There are several registrations which aren't expected because of Uri properties being resolved container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1); container.Should().HaveRegistered <EnvironmentValuesWithoutAttributes>(); var actual = container.Resolve <EnvironmentValuesWithoutAttributes>(); actual.StringData.Should().Be(expectedString); }
private static ComponentRegistration<object> ApplyResolver(ComponentRegistration<object> registration, InstanceResolver resolver) { return registration.Instance(resolver.Instance); }
private static IRegistrationBuilder<object, IConcreteActivatorData, SingleRegistrationStyle> ApplyResolver(ContainerBuilder builder, InstanceResolver resolver) { return builder.RegisterInstance(resolver.Instance).ExternallyOwned(); }
private static ObjectInstance ApplyResolver(GenericFamilyExpression builder, InstanceResolver resolver) { return builder.Add(resolver.Instance); }
private static ComponentRegistration <object> ApplyResolver(ComponentRegistration <object> registration, InstanceResolver resolver) { return(registration.Instance(resolver.Instance)); }