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);
 }
Example #8
0
 private static ComponentRegistration <object> ApplyResolver(ComponentRegistration <object> registration, InstanceResolver resolver)
 {
     return(registration.Instance(resolver.Instance));
 }