public void Cyclic_DependencyOverride() { // Arrange Container.RegisterType <I0, G0>() .RegisterType <I1, G1>(); //next line throws StackOverflowException Container.Resolve <G1>( Override.Dependency <I0>( Resolve.Dependency <I1>())); }
public void CtorParameter() { // Arrange Container.RegisterType <Service>(Invoke.Constructor(_data)); // Act var value = Container.Resolve <Service>(Override.Dependency <string>(_override)); // Verify Assert.AreSame(_data, value.Data); }
public void Override_NamedDependency() { // Arrange Container.RegisterInstance(_data) .RegisterInstance(Name, Name); // Act var instance = Container.Resolve <CtorWithNamedDependency>(Override.Dependency <string>(Name, _override)); // Validate Assert.AreEqual(_override, instance.Data); }
public void Overrides_DependencyOverrideFieldValue() { var other = "other"; // Act var result = Container.Resolve <ObjectWithAttributes>( Override.Field(nameof(ObjectWithAttributes.Dependency), null), Override.Dependency(other, other)); // Verify Assert.IsNotNull(result); Assert.IsNull(result.Dependency); Assert.IsNotNull(result.Optional); Assert.AreEqual(result.Optional, other); }
public void OptionalViaDependencyAsType() { // Setup IService x = new Service1(); IService y = new Service2(); // Act var result = Container.Resolve <Foo>( Override.Dependency(typeof(IService), "Fred", x), Override.Dependency(typeof(IService), "George", y)); // Verify Assert.IsNotNull(result); Assert.IsNotNull(result.Fred); Assert.IsNotNull(result.George); }
public void InjectedParameterWithDependencyOverride() { // Setup var noOverride = "default"; var depOverride = "custom-via-override"; Container.RegisterType <TestType>(Invoke.Constructor(noOverride)); // Act var defaultValue = Container.Resolve <TestType>().ToString(); var depValue = Container.Resolve <TestType>(Override.Dependency <string>(depOverride)).ToString(); var propValue = Container.Resolve <TestType>(Override.Parameter <string>(depOverride)).ToString(); // Verify Assert.AreSame(noOverride, defaultValue); Assert.AreSame(noOverride, depValue); Assert.AreSame(depOverride, propValue); }
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 InjectedPropertyWithDependencyOverride() { // Setup var noOverride = "default"; var depOverride = "custom-via-override"; Container.RegisterType <TestType>(Inject.Property(nameof(TestType.DependencyProperty), noOverride)); // Act var defaultValue = Container.Resolve <TestType>().DependencyProperty; var depValue = Container.Resolve <TestType>(Override.Dependency <string>(depOverride)).DependencyProperty; var propValue = Container.Resolve <TestType>(Override.Property(nameof(TestType.DependencyProperty), depOverride)).DependencyProperty; // Verify Assert.AreSame(noOverride, defaultValue); Assert.AreSame(noOverride, depValue); Assert.AreSame(depOverride, propValue); }
public void InjectedFieldWithFielDependencyOverride() { // Setup var noOverride = "default"; var depOverride = "custom-via-override"; Container.RegisterType <TestType>(Inject.Field(nameof(TestType.DependencyField), noOverride)); // Act var defaultValue = Container.Resolve <TestType>().DependencyField; var dependValue = Container.Resolve <TestType>(Override.Dependency <string>(depOverride)).DependencyField; var fieldValue = Container.Resolve <TestType>(Override.Field(nameof(TestType.DependencyField), depOverride)).DependencyField; // Verify Assert.AreSame(noOverride, defaultValue); Assert.AreSame(noOverride, dependValue); Assert.AreSame(depOverride, fieldValue); }
// https://github.com/unitycontainer/container/issues/140 public void Issue_Container_140() { // Setup var noOverride = "default"; var parOverride = "custom-via-parameteroverride"; var depOverride = "custom-via-dependencyoverride"; Container.RegisterType <Foo>(new InjectionConstructor(noOverride)); // Act var defaultValue = Container.Resolve <Foo>().ToString(); var depValue = Container.Resolve <Foo>(Override.Dependency <string>(depOverride)).ToString(); var parValue = Container.Resolve <Foo>(Override.Parameter <string>("dependency", parOverride)) .ToString(); // Verify Assert.AreSame(noOverride, defaultValue); Assert.AreSame(parOverride, parValue); Assert.AreSame(depOverride, depValue); }