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