public void TypeBasedOverrideConstructorWithNoTypeMatch() { IForTypeToInject defaultValue = new TypeToInject1ForTypeOverride(111); IForTypeToInject overrideValue = new TypeToInject2ForTypeOverride(222); ParameterOverride overrideParam = new ParameterOverride("injectedObject", overrideValue); TypeBasedOverride overrideDecorator = new TypeBasedOverride(typeof(int), overrideParam); IUnityContainer container = new UnityContainer(); container.RegisterType <IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>(new InjectionConstructor(defaultValue)); var result = container.Resolve <IForToUndergoeInject>(overrideDecorator); Assert.AreEqual <int>(111, result.IForTypeToInject.Value); }
public void TypeBasedOverrideWithResolveAll() { IForTypeToInject defaultValue = new TypeToInject1ForTypeOverride(111); IForTypeToInject overrideValue = new TypeToInject1ForTypeOverride(222); ParameterOverride overrideParam = new ParameterOverride("injectedObject", overrideValue); TypeBasedOverride overrideDecorator = new TypeBasedOverride(typeof(TypeToUndergoeTypeBasedInject1), overrideParam); IUnityContainer container = new UnityContainer(); container.RegisterType <IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>(new InjectionConstructor(defaultValue)).RegisterType <IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>("Named", new InjectionConstructor(defaultValue)); var resultList = container.ResolveAll <IForToUndergoeInject>(overrideDecorator); foreach (var result in resultList) { Assert.AreEqual <int>(222, result.IForTypeToInject.Value); } }
public void TypeBasedOverrideConstructorWithNoTypeMatch() { IForTypeToInject defaultValue = new TypeToInject1ForTypeOverride(111); IForTypeToInject overrideValue = new TypeToInject2ForTypeOverride(222); ParameterOverride overrideParam = new ParameterOverride("injectedObject", overrideValue); TypeBasedOverride overrideDecorator = new TypeBasedOverride(typeof(int), overrideParam); IUnityContainer container = new UnityContainer(); container.RegisterType<IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>(new InjectionConstructor(defaultValue)); var result = container.Resolve<IForToUndergoeInject>(overrideDecorator); Assert.AreEqual<int>(111, result.IForTypeToInject.Value); }
public void TypeBasedOverrideWithResolveAll() { IForTypeToInject defaultValue = new TypeToInject1ForTypeOverride(111); IForTypeToInject overrideValue = new TypeToInject1ForTypeOverride(222); ParameterOverride overrideParam = new ParameterOverride("injectedObject", overrideValue); TypeBasedOverride overrideDecorator = new TypeBasedOverride(typeof(TypeToUndergoeTypeBasedInject1), overrideParam); IUnityContainer container = new UnityContainer(); container.RegisterType<IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>(new InjectionConstructor(defaultValue)).RegisterType<IForToUndergoeInject, TypeToUndergoeTypeBasedInject1>("Named", new InjectionConstructor(defaultValue)); var resultList = container.ResolveAll<IForToUndergoeInject>(overrideDecorator); foreach (var result in resultList) { Assert.AreEqual<int>(222, result.IForTypeToInject.Value); } }