Ejemplo n.º 1
0
        public void Overrides_CanOverrideValueResolver()
        {
            // Act
            var resolver = new ValidatingResolver(new Something2());
            var result   = Container.Resolve <ObjectWithProperty>(
                Override.Property(nameof(ObjectWithProperty.MyProperty), resolver));

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.MyProperty);
            Assert.IsInstanceOfType(result.MyProperty, typeof(Something2));
            Assert.AreEqual(typeof(ISomething), resolver.Type);
        }
Ejemplo n.º 2
0
        public void Overrides_CanOverrideAttributedValueResolver()
        {
            var other    = "other";
            var resolver = new ValidatingResolver(other);

            // Act
            var result = Container.Resolve <ObjectWithThreeProperties>(
                Override.Property(nameof(ObjectWithThreeProperties.Name), resolver));

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Container);
            Assert.AreEqual(result.Name, other);
            Assert.AreEqual(typeof(string), resolver.Type);
        }
Ejemplo n.º 3
0
        public void Overrides_DependencyOverrideFieldValueResolver()
        {
            var other     = "other";
            var resolver1 = new ValidatingResolver(Name);

            // Act
            var result = Container.Resolve <ObjectWithAttributes>(
                Override.Field(nameof(ObjectWithAttributes.Dependency), resolver1),
                Override.Dependency(other, other));

            // Verify
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Dependency, Name);
            Assert.AreEqual(result.Optional, other);

            Assert.AreEqual(typeof(string), resolver1.Type);
        }
Ejemplo n.º 4
0
        public void Overrides_FieldOverrideAttributeResolver()
        {
            // Act
            var resolver1 = new ValidatingResolver(Name);
            var resolver2 = new ValidatingResolver(Name1);
            var result    = Container.Resolve <ObjectWithAttributes>(
                Override.Field(nameof(ObjectWithAttributes.Dependency), resolver1),
                Override.Field(nameof(ObjectWithAttributes.Optional), resolver2));

            // Verify
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Dependency, Name);
            Assert.AreEqual(result.Optional, Name1);

            Assert.AreEqual(typeof(string), resolver1.Type);
            Assert.AreEqual(typeof(string), resolver2.Type);
        }
Ejemplo n.º 5
0
        public virtual void Injected_ByResolver_FromEmpty(string test, Type type, string name, Type dependency, object expected)
        {
            Type target = type.IsGenericTypeDefinition
                        ? type.MakeGenericType(dependency)
                        : type;
            // Arrange
            var resolver  = new ValidatingResolver(expected);
            var parameter = new InjectionParameter(dependency, resolver);

            Container.RegisterType(target, name, GetInjectionValue(parameter));

            // Act
            var instance = Container.Resolve(target, name) as PatternBase;

            // Validate
            Assert.IsNotNull(instance);
            Assert.AreEqual(expected, instance.Value);
        }
Ejemplo n.º 6
0
        public void Overrides_TypePassedToResolverAttr()
        {
            // Arrange
            var resolver = new ValidatingResolver(1);

            Container.RegisterType <Service>(
                new InjectionMethod(nameof(Service.DependencyAttribute)));

            // Act
            var result = Container.Resolve <Service>(Override.Parameter(typeof(object), "value", resolver));

            // Assert
            Assert.IsNotNull(result.Value);
            Assert.IsInstanceOfType(result.Value, typeof(object));
            Assert.AreEqual(1, result.Value);

            Assert.AreEqual(typeof(object), resolver.Type);
        }
Ejemplo n.º 7
0
        public void Overrides_CanOverrideNamedPropResolver()
        {
            // Arrange
            Container.RegisterType <ObjectWithNamedDependencyProperties>(
                new InjectionProperty(nameof(ObjectWithNamedDependencyProperties.Property), Name));

            // Act
            var other    = "other";
            var resolver = new ValidatingResolver(other);
            var result   = Container.Resolve <ObjectWithNamedDependencyProperties>(
                Override.Property(nameof(ObjectWithNamedDependencyProperties.Property), resolver));

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Property);
            Assert.AreEqual(other, result.Property);
            Assert.AreEqual(typeof(string), resolver.Type);
            Assert.AreEqual(Name, resolver.Name);
        }
Ejemplo n.º 8
0
        public void Overrides_TypeAndNamePassedToResolverGeneric()
        {
            // Arrange
            var value    = "value";
            var resolver = new ValidatingResolver(value);

            Container.RegisterType <Service>(
                new InjectionMethod(nameof(Service.NamedDependencyAttribute)));

            // Act
            var result = Container.Resolve <Service>(Override.Parameter <string>("value", resolver));

            // Assert
            Assert.IsNotNull(result.Value);
            Assert.IsInstanceOfType(result.Value, typeof(string));
            Assert.AreEqual(value, result.Value);

            Assert.AreEqual(typeof(string), resolver.Type);
            Assert.AreEqual(Name, resolver.Name);
        }
Ejemplo n.º 9
0
        public void Overrides_CanOverridePropOnAttributedResolver()
        {
            // Arrange
            Container.RegisterType <ObjectWithThreeProperties>(
                new InjectionProperty(nameof(ObjectWithThreeProperties.Property), Name));

            // Act
            var other    = "other";
            var resolver = new ValidatingResolver(other);
            var result   = Container.Resolve <ObjectWithThreeProperties>(
                Override.Property(nameof(ObjectWithThreeProperties.Property), resolver)
                .OnType <ObjectWithThreeProperties>());

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Name);
            Assert.IsNotNull(result.Container);
            Assert.IsNotNull(result.Property);
            Assert.AreEqual(other, result.Property);
            Assert.AreEqual(typeof(object), resolver.Type);
        }