Inheritance: StructureMapDependencyScope, IDependencyResolver
        public void StructureMapResolver_Create_should_delegate_to_GetInstance()
        {
            var container = MockRepository.GenerateMock<IContainer>();
            var resolver = new StructureMapResolver(container);
            var controllerType = typeof (ContactsController);

            resolver.Create(new HttpRequestMessage(), new HttpControllerDescriptor(), controllerType);

            container.AssertWasCalled(x => x.GetInstance(controllerType));
        }
        public void StructureMapResolver_should_return_an_empty_collection_if_type_isnt_found()
        {
            var config = new HttpConfiguration();
            var resolver = new StructureMapResolver(new Container());

            config.DependencyResolver = resolver;
            var repositories = config.DependencyResolver.GetServices(typeof(IContactRepository));

            repositories.Count().ShouldEqual(0);
        }
        public void StructureMapResolver_should_return_both_instaces_of_IContactRepository()
        {
            var container = new Container(x => x.Scan(s =>
            {
                s.TheCallingAssembly();
                s.AddAllTypesOf<IContactRepository>().NameBy(t => t.Name);
            }));
            var config = new HttpConfiguration();
            var resolver = new StructureMapResolver(container);

            config.DependencyResolver = resolver;
            var repositories = config.DependencyResolver.GetServices(typeof(IContactRepository));

            repositories.Count().ShouldEqual(2);
        }
        public void StructureMapResolver_should_be_returned_for_IHttpControllerActivator_WithDefaultConventions()
        {
            // When building up a SM container, this is the only thing that doesn't get
            // resolved "nicely" when using default conventions.
            var container = new Container(x => x.Scan(s =>
            {
                s.TheCallingAssembly();
                s.WithDefaultConventions();
            }));
            var config = new HttpConfiguration();
            var resolver = new StructureMapResolver(container);

            config.DependencyResolver = resolver;

            var actualActivator = config.Services.GetService(typeof (IHttpControllerActivator));

            actualActivator.ShouldBeSameAs(resolver);
        }