public void CanResolveOptionalDependenciesByNameWithAPI()
        {
            IGuineaPig expected = Mock.Of <IGuineaPig>();

            container.RegisterType <GuineaPig>(
                new InjectionConstructor(new OptionalParameter(typeof(IGuineaPig), "named")))
            .RegisterInstance <IGuineaPig>("named", expected);

            var result = container.Resolve <GuineaPig>();

            Assert.AreSame(expected, result.Pig);
        }
        public void CanResolveOptionalDependencyWhenConfiguredByAPI()
        {
            IGuineaPig mockPig = Mock.Of <IGuineaPig>();

            container.RegisterType <GuineaPig>(
                new InjectionConstructor(new OptionalParameter <IGuineaPig>()))
            .RegisterInstance <IGuineaPig>(mockPig);

            var result = container.Resolve <GuineaPig>();

            Assert.AreSame(mockPig, result.Pig);
        }
        public void CanConfigureOptionalParameterToInjectionMethod()
        {
            IGuineaPig expected = Mock.Of <IGuineaPig>();

            container.RegisterType <GuineaPig>(
                new InjectionConstructor(),
                new InjectionMethod("SetPig", new OptionalParameter <IGuineaPig>("named")))
            .RegisterInstance("named", expected);

            var result = container.Resolve <GuineaPig>();

            Assert.AreSame(expected, result.Pig);
        }
 public void SetPig(IGuineaPig pig)
 {
     Pig = pig;
 }
 public GuineaPig(IGuineaPig pig)
 {
     Pig = pig;
     ConstructorWithArgsWasCalled = true;
 }
 public void SetPig(IGuineaPig pig)
 {
     Pig = pig;
 }
 public GuineaPig(IGuineaPig pig)
 {
     Pig = pig;
     ConstructorWithArgsWasCalled = true;
 }