public void SetUp()
 {
     connection         = MockRepository.GenerateMock <IDbConnection>();
     reader             = MockRepository.GenerateMock <IDataReader>();
     pick_a_constructor = MockRepository.GenerateMock <IPickAConstructor>();
     the_container      = MockRepository.GenerateMock <IFetchDependencies>();
 }
            public void it_should_create_the_dependency_with_all_of_its_dependencies_resolved_correctly()
            {
                greediest_constructor =
                    ObjectFactory.expression.to_target <TypeWithLotsOfDependencies>().
                    ctor_pointed_at_by(() => new TypeWithLotsOfDependencies(null, null));
                pick_a_constructor = (type) =>
                {
                    Assert.AreEqual(type, typeof(TypeWithLotsOfDependencies));
                    return(greediest_constructor);
                };

                the_container.Stub(x => x.a(typeof(IDbConnection))).Return(connection);
                the_container.Stub(x => x.a(typeof(IDataReader))).Return(reader);

                dependency_resolver = new AutomaticallyResolvingDependencyFactory(typeof(TypeWithLotsOfDependencies), pick_a_constructor, the_container);
                result = (TypeWithLotsOfDependencies)dependency_resolver.create();

                Assert.IsInstanceOf <TypeWithLotsOfDependencies>(result);
                Assert.AreEqual(result.connection, connection);
                Assert.AreEqual(result.reader, reader);
            }
            public void it_should_create_the_dependency_with_all_of_its_dependencies_resolved_correctly()
            {
                greediest_constructor =
                    ObjectFactory.expression.to_target<TypeWithLotsOfDependencies>().
                                                                    ctor_pointed_at_by(() => new TypeWithLotsOfDependencies(null,null));
                pick_a_constructor = (type) =>
                    {
                        Assert.AreEqual(type, typeof (TypeWithLotsOfDependencies));
                        return greediest_constructor;
                    };

                the_container.Stub(x => x.a(typeof (IDbConnection))).Return(connection);
                the_container.Stub(x => x.a(typeof (IDataReader))).Return(reader);

                dependency_resolver = new AutomaticallyResolvingDependencyFactory(typeof(TypeWithLotsOfDependencies), pick_a_constructor, the_container);
                result = (TypeWithLotsOfDependencies) dependency_resolver.create();

                Assert.IsInstanceOf<TypeWithLotsOfDependencies>(result);
                Assert.AreEqual(result.connection, connection);
                Assert.AreEqual(result.reader, reader);
            }
 public AutomaticallyResolvingDependencyFactory(Type type_to_create, IPickAConstructor constructor_picker, IFetchDependencies container)
 {
     this.type_to_create     = type_to_create;
     this.constructor_picker = constructor_picker;
     this.container          = container;
 }
 public void SetUp()
 {
     connection = MockRepository.GenerateMock<IDbConnection>();
     reader = MockRepository.GenerateMock<IDataReader>();
     pick_a_constructor = MockRepository.GenerateMock<IPickAConstructor>();
     the_container = MockRepository.GenerateMock<IFetchDependencies>();
 }
 public AutomaticallyResolvingDependencyFactory(Type type_to_create, IPickAConstructor constructor_picker, IFetchDependencies container)
 {
     this.type_to_create = type_to_create;
     this.constructor_picker = constructor_picker;
     this.container = container;
 }