public void TestInit()
 {
     this.controller = MyWebApi
                       .Controller <BooksController>()
                       .WithResolvedDependencyFor(MocksFactory.BooksRepository)
                       .WithResolvedDependencyFor(MocksFactory.AuthorsRepository);
 }
 public void TestInit()
 {
     this.controller = MyWebApi
         .Controller<BooksController>()
         .WithResolvedDependencyFor(MocksFactory.BooksRepository)
         .WithResolvedDependencyFor(MocksFactory.AuthorsRepository);
 }
示例#3
0
        public ControllerTypeResolver(
            IEnumerable <string> areaNamespacesToIgnore,
            RouteCollection routes,
            IControllerBuilder controllerBuilder,
            IBuildManager buildManager
            )
        {
            if (areaNamespacesToIgnore == null)
            {
                throw new ArgumentNullException("areaNamespacesToIgnore");
            }
            if (routes == null)
            {
                throw new ArgumentNullException("routes");
            }
            if (controllerBuilder == null)
            {
                throw new ArgumentNullException("controllerBuilder");
            }
            if (buildManager == null)
            {
                throw new ArgumentNullException("buildManager");
            }

            this.areaNamespacesToIgnore = areaNamespacesToIgnore;
            this.routes            = routes;
            this.controllerBuilder = controllerBuilder;
            this.buildManager      = buildManager;

            Cache = new ThreadSafeDictionary <string, Type>();
        }
示例#4
0
        public AuthorizeAttributeAclModule(
            IMvcContextFactory mvcContextFactory,
            IControllerDescriptorFactory controllerDescriptorFactory,
            IControllerBuilder controllerBuilder,
            IGlobalFilterProvider filterProvider
            )
        {
            if (mvcContextFactory == null)
            {
                throw new ArgumentNullException("mvcContextFactory");
            }
            if (controllerDescriptorFactory == null)
            {
                throw new ArgumentNullException("controllerDescriptorFactory");
            }
            if (controllerBuilder == null)
            {
                throw new ArgumentNullException("controllerBuilder");
            }
            if (filterProvider == null)
            {
                throw new ArgumentNullException("filterProvider");
            }

            this.mvcContextFactory           = mvcContextFactory;
            this.controllerDescriptorFactory = controllerDescriptorFactory;
            this.controllerBuilder           = controllerBuilder;
            this.filterProvider = filterProvider;
        }
        public AuthorizeAttributeAclModule(
            IMvcContextFactory mvcContextFactory,
            IObjectCopier objectCopier,
            IControllerDescriptorFactory controllerDescriptorFactory,
            IControllerBuilder controllerBuilder,
            IAuthorizeAttributeBuilder authorizeAttributeBuilder,
            IGlobalFilterProvider filterProvider
            )
        {
            if (mvcContextFactory == null)
                throw new ArgumentNullException("mvcContextFactory");
            if (objectCopier == null)
                throw new ArgumentNullException("objectCopier");
            if (controllerDescriptorFactory == null)
                throw new ArgumentNullException("controllerDescriptorFactory");
            if (controllerBuilder == null)
                throw new ArgumentNullException("controllerBuilder");
            if (authorizeAttributeBuilder == null)
                throw new ArgumentNullException("authorizeAttributeBuilder");
            if (filterProvider == null)
                throw new ArgumentNullException("filterProvider");

            this.mvcContextFactory = mvcContextFactory;
            this.objectCopier = objectCopier;
            this.controllerDescriptorFactory = controllerDescriptorFactory;
            this.controllerBuilder = controllerBuilder;
            this.authorizeAttributeBuilder = authorizeAttributeBuilder;
            this.filterProvider = filterProvider;
        }
        public void Initialize()
        {
            this.categoriesController = MyWebApi
                .Controller<CategoriesController>()
                .WithResolvedDependencyFor(MocksFactory.GetCategoriesService());

            AutoMapper.Mapper.CreateMap<Category, CategoryDataTransferModel>();
        }
示例#7
0
 public void Init()
 {
     this.controller = MyWebApi
         .Controller<ImagesController>()
         .WithResolvedDependencies(DataServices.GetImagesService())
         .WithResolvedDependencies(DataServices.GetAlbumService())
         .WithResolvedDependencies(DataServices.GetTagsService());
 }
 public void TestInit()
 {
     this.controller = MyWebApi
                       .Controller <ProjectsController>()
                       .WithResolvedDependencyFor(MocksFactory.BillableHoursWebAppData)
                       .WithResolvedDependencyFor(MocksFactory.PubnubBroadcaster)
                       .WithResolvedDependencyFor(MocksFactory.DropboxHelper);
 }
示例#9
0
 public void Init()
 {
     this.controller = MyWebApi
                       .Controller <ImagesController>()
                       .WithResolvedDependencies(DataServices.GetImagesService())
                       .WithResolvedDependencies(DataServices.GetAlbumService())
                       .WithResolvedDependencies(DataServices.GetTagsService());
 }
示例#10
0
 public void Init()
 {
     this.controller = MyWebApi
                       .Controller <SuggestionsController>()
                       .WithResolvedDependencies(Services.GetSuggestionsService())
                       .WithResolvedDependencies(Services.GetCommentsService())
                       .WithResolvedDependencies(Services.GetVotesService());
 }
        public void Init()
        {
            this.controller = MyWebApi.Controller<SectionsController>()
                .WithResolvedDependencyFor(TestObjectFactory.GetSectionService());

            this.controllerWithMockedNotFoundService = MyWebApi.Controller<SectionsController>()
                            .WithResolvedDependencyFor(TestObjectFactory.GetSectionServiceNotFoundMock());

            this.sectionsService = TestObjectFactory.GetSectionService();
        }
        /// <summary>
        /// Disables <see cref="Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary"/> validation for the action call.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IAndControllerBuilder <TController> WithoutValidation <TController>(
            this IControllerBuilder <TController> controllerBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            actualControllerBuilder.EnabledModelStateValidation = false;

            return(actualControllerBuilder);
        }
 public void Init()
 {
     this.fakeJustDIYData.Setup(m => m.Favourites.Delete(1)).Returns(new Favourite
     {
         User      = new User(),
         Project   = new Project(),
         UserId    = 1,
         ProjectId = 1,
     });
     this.controller = new ControllerBuilder <FavouritesController>(new FavouritesController(this.fakeJustDIYData.Object));
 }
 public void Init()
 {
     this.fakeJustDIYData.Setup(m => m.Favourites.Delete(1)).Returns(new Favourite
     {
         User = new User(),
         Project = new Project(),
         UserId = 1,
         ProjectId = 1,
     });
     this.controller = new ControllerBuilder<FavouritesController>(new FavouritesController(this.fakeJustDIYData.Object));
 }
示例#15
0
        /// <summary>
        /// Sets initial values to the <see cref="DbContext"/> on the tested controller.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <param name="dbContextBuilder">Action setting the <see cref="DbContext"/> by using <see cref="IDbContextBuilder"/>.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IControllerBuilder <TController> WithDbContext <TController>(
            this IControllerBuilder <TController> controllerBuilder,
            Action <IDbContextBuilder> dbContextBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            dbContextBuilder(new DbContextBuilder(actualControllerBuilder.TestContext));

            return(actualControllerBuilder);
        }
示例#16
0
        /// <summary>
        /// Sets initial values to the configuration options on the tested controller.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <param name="optionsBuilder">Action setting the configuration options by using <see cref="IOptionsBuilder"/>.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IControllerBuilder <TController> WithOptions <TController>(
            this IControllerBuilder <TController> controllerBuilder,
            Action <IOptionsBuilder> optionsBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            optionsBuilder(new OptionsBuilder(actualControllerBuilder.TestContext));

            return(actualControllerBuilder);
        }
示例#17
0
        /// <summary>
        /// Sets initial values to the <see cref="Microsoft.Extensions.Caching.Memory.IMemoryCache"/> service.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <param name="memoryCacheBuilder">Action setting the <see cref="Microsoft.Extensions.Caching.Memory.IMemoryCache"/> values by using <see cref="IMemoryCacheBuilder"/>.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IAndControllerBuilder <TController> WithMemoryCache <TController>(
            this IControllerBuilder <TController> controllerBuilder,
            Action <IMemoryCacheBuilder> memoryCacheBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            memoryCacheBuilder(new MemoryCacheBuilder(actualControllerBuilder.TestContext.HttpContext.RequestServices));

            return(actualControllerBuilder);
        }
        /// <summary>
        /// Sets initial values to the HTTP <see cref="Microsoft.AspNetCore.Http.ISession"/>.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <param name="sessionBuilder">Action setting the <see cref="Microsoft.AspNetCore.Http.ISession"/> values by using <see cref="ISessionBuilder"/>.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IAndControllerBuilder <TController> WithSession <TController>(
            this IControllerBuilder <TController> controllerBuilder,
            Action <ISessionBuilder> sessionBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            sessionBuilder(new SessionBuilder(actualControllerBuilder.TestContext.Session));

            return(actualControllerBuilder);
        }
示例#19
0
 public static IControllerBuilder <T> WithTestRig <T>(this IControllerBuilder <T> obj, TestRig rig)
     where T : ApiController
 {
     return(obj
            .WithResolvedDependencies(rig.PlayersService)
            .WithSetup(c =>
     {
         var oc = new OwinContext();
         var auth = new GunchoResourceAuthorization(rig.PlayersService, rig.RealmsService);
         oc.Set(ResourceAuthorizationManagerMiddleware.Key, auth);
         c.Request.SetOwinContext(oc);
     }));
 }
示例#20
0
        private void Initialize(IServiceProvider services)
        {
            _logger.LogInformation("LiteApi middleware initialization started");
            Options.InternalServiceResolver.RegisterInstance <IAuthorizationPolicyStore>(Options.AuthorizationPolicyStore);

            IControllerDiscoverer ctrlDiscoverer = Options.InternalServiceResolver.GetControllerDiscoverer();

            List <ControllerContext> ctrlContexts = new List <ControllerContext>();

            foreach (var assembly in Options.ControllerAssemblies)
            {
                ctrlContexts.AddRange(ctrlDiscoverer.GetControllers(assembly));
            }

            var actions = ctrlContexts.SelectMany(x => x.Actions).ToArray();

            IControllerBuilder    ctrlBuilder = Options.InternalServiceResolver.GetControllerBuilder();
            ModelBinderCollection modelBinder = new ModelBinderCollection(Options.InternalServiceResolver.GetJsonSerializer(), services);

            foreach (IQueryModelBinder qmb in Options.AdditionalQueryModelBinders)
            {
                modelBinder.AddAdditionalQueryModelBinder(qmb);
            }

            var authPolicyStore             = Options.AuthorizationPolicyStore;
            IControllersValidator validator = Options.InternalServiceResolver.GetControllerValidator();
            var errors = validator.GetValidationErrors(ctrlContexts.ToArray()).ToArray();

            if (errors.Any())
            {
                _logger.LogError("One or more errors occurred while initializing LiteApi middleware. Check next log entry/entries.");
                foreach (var error in errors)
                {
                    _logger.LogError(error);
                }
                string allErrors = "\n\n --------- \n\n" + string.Join("\n\n --------- \n\n", errors);
                throw new LiteApiRegistrationException($"Failed to initialize {nameof(LiteApiMiddleware)}, see property Errors, log if enabled, or check erros listed below." + allErrors, errors);
            }

            Func <Type, bool> isRegistered = (type) => Options.InternalServiceResolver.IsServiceRegistered(type);

            if (!isRegistered(typeof(IPathResolver)))
            {
                Options.InternalServiceResolver.RegisterInstance <IPathResolver>(new PathResolver(ctrlContexts.ToArray()));
            }

            if (!isRegistered(typeof(IModelBinder)))
            {
                Options.InternalServiceResolver.RegisterInstance <IModelBinder>(modelBinder);
            }
        }
 public void Init()
 {
     this.fakeJustDIYData.Setup(m => m.Projects.Delete(1)).Returns(new Project
     {
         Author = new User(),
         Category = Category.Hardware,
         Content = "Hello, World!",
         CreatedOn = DateTime.Now,
         Name = "Arduino Uno hacks",
         VideoUrl = "http://youtube.com/cats/",
         Points = 5
     });
     this.controller = new ControllerBuilder<ProjectsController>(new ProjectsController(this.fakeJustDIYData.Object));
 }
示例#22
0
        /// <summary>
        /// Sets initial values to the <see cref="Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary"/> on the tested controller.
        /// </summary>
        /// <typeparam name="TController">Class representing ASP.NET Core MVC controller.</typeparam>
        /// <param name="controllerBuilder">Instance of <see cref="IControllerBuilder{TController}"/> type.</param>
        /// <param name="tempDataBuilder">Action setting the <see cref="Microsoft.AspNetCore.Mvc.ViewFeatures.TempDataDictionary"/> values by using <see cref="ITempDataBuilder"/>.</param>
        /// <returns>The same <see cref="IControllerBuilder{TController}"/>.</returns>
        public static IAndControllerBuilder <TController> WithTempData <TController>(
            this IControllerBuilder <TController> controllerBuilder,
            Action <ITempDataBuilder> tempDataBuilder)
            where TController : class
        {
            var actualControllerBuilder = (ControllerBuilder <TController>)controllerBuilder;

            actualControllerBuilder.ControllerPreparationAction += testContext =>
            {
                tempDataBuilder(new TempDataBuilder(testContext.GetTempData()));
            };

            return(actualControllerBuilder);
        }
        public ControllerTypeResolverFactory(
            IEnumerable<string> areaNamespacesToIgnore,
            IControllerBuilder controllerBuilder,
            IBuildManager buildManager
            )
        {
            if (areaNamespacesToIgnore == null)
                throw new ArgumentNullException("areaNamespacesToIgnore");
            if (controllerBuilder == null)
                throw new ArgumentNullException("controllerBuilder");
            if (buildManager == null)
                throw new ArgumentNullException("buildManager");

            this.areaNamespacesToIgnore = areaNamespacesToIgnore;
            this.controllerBuilder = controllerBuilder;
            this.buildManager = buildManager;
        }
        public ControllerTypeResolver(
			IEnumerable<string> areaNamespacesToIgnore,
			RouteCollection routes,
			IControllerBuilder controllerBuilder,
			IBuildManager buildManager            
			)
        {
            if (areaNamespacesToIgnore == null)
                throw new ArgumentNullException("areaNamespacesToIgnore");
            if (routes == null)
                throw new ArgumentNullException("routes");
            if (controllerBuilder == null)
                throw new ArgumentNullException("controllerBuilder");
            if (buildManager == null)
                throw new ArgumentNullException("buildManager");

            this.areaNamespacesToIgnore = areaNamespacesToIgnore;
            this.routes = routes;
            this.controllerBuilder = controllerBuilder;
            this.buildManager = buildManager;

            Cache = new ThreadSafeDictionary<string, Type>();
        }
        public ControllerTypeResolverFactory(
            IEnumerable <string> areaNamespacesToIgnore,
            IControllerBuilder controllerBuilder,
            IBuildManager buildManager
            )
        {
            if (areaNamespacesToIgnore == null)
            {
                throw new ArgumentNullException("areaNamespacesToIgnore");
            }
            if (controllerBuilder == null)
            {
                throw new ArgumentNullException("controllerBuilder");
            }
            if (buildManager == null)
            {
                throw new ArgumentNullException("buildManager");
            }

            this.areaNamespacesToIgnore = areaNamespacesToIgnore;
            this.controllerBuilder      = controllerBuilder;
            this.buildManager           = buildManager;
        }
示例#26
0
 public void Init()
 {
     this.controller = MyWebApi
                       .Controller <ScoresController>()
                       .WithResolvedDependencies(Services.GetHighScoreService());
 }
 public void Init()
 {
     this.controller =
         MyWebApi.Controller<NewsArticlesController>()
             .WithResolvedDependencies(Services.GetNewsArticlesService(), Services.GetPubnubBroadcaster());
 }
示例#28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ActionInvoker"/> class.
 /// </summary>
 /// <param name="controllerBuilder">The controller builder.</param>
 /// <param name="modelBinder">The model binder.</param>
 /// <param name="jsonSerializer">The JSON serializer.</param>
 /// <exception cref="System.ArgumentNullException">
 /// </exception>
 public ActionInvoker(IControllerBuilder controllerBuilder, IModelBinder modelBinder, IJsonSerializer jsonSerializer)
 {
     _controllerBuilder = controllerBuilder ?? throw new ArgumentNullException(nameof(controllerBuilder));
     _modelBinder       = modelBinder ?? throw new ArgumentNullException(nameof(modelBinder));
     _jsonSerializer    = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer));
 }
 public void Init()
 {
     this.controller = MyWebApi
                       .Controller <CommitsController>()
                       .WithResolvedDependencies(TestObjectFactory.GetCommitsService());
 }
 public static void Init(TestContext testContext)
 {
     controller = MyWebApi
         .Controller<CommentsController>()
         .WithResolvedDependencies(Services.CommentsService);
 }
示例#31
0
 public ValuesTests()
 {
     _controller = MyWebApi.Controller <ValuesController>();
 }
 public void TestInit()
 {
     this.controller = MyWebApi
         .Controller<CategoriesController>()
         .WithResolvedDependencyFor(MocksFactory.BillableHoursWebAppData);
 }
 public void Init()
 {
     this.controller = MyWebApi
         .Controller<ScoresController>()
         .WithResolvedDependencies(Services.GetHighScoreService());
 }
        public void Init()
        {
            this.controller = MyWebApi.Controller<CategoriesController>()
                .WithResolvedDependencyFor(TestObjectFactory.GetCategoriesService());

            this.controllerWithMockedNotFoundService = MyWebApi.Controller<CategoriesController>()
                 .WithResolvedDependencies(TestObjectFactory.GetCategoriesServiceNotFound());
        }
 public static void Init(TestContext testContext)
 {
     controller = MyWebApi
                  .Controller <CommentsController>()
                  .WithResolvedDependencies(Services.CommentsService);
 }
 public void Init()
 {
     this.controller = MyWebApi
         .Controller<CommentsController>()
         .WithResolvedDependencies(Services.GetCommentsServices());
 }
 public void TestInit()
 {
     this.controller = MyWebApi
                       .Controller <CategoriesController>()
                       .WithResolvedDependencyFor(MocksFactory.BillableHoursWebAppData);
 }
 public void TestInit()
 {
     this.controller = MyWebApi
         .Controller<ProjectsController>()
         .WithResolvedDependencyFor(MocksFactory.BillableHoursWebAppData)
         .WithResolvedDependencyFor(MocksFactory.PubnubBroadcaster)
         .WithResolvedDependencyFor(MocksFactory.DropboxHelper);
 }
        public void Initialize()
        {
            this.petsController = MyWebApi
                .Controller<PetsController>()
                .WithResolvedDependencyFor(MocksFactory.GetPetsService());

            AutoMapper.Mapper.CreateMap<Pet, PetResponseModel>();
            AutoMapper.Mapper.CreateMap<Pet, PetResponseModel>()
                .ForMember(
                    dest => dest.Color,
                           opts => opts.MapFrom(src => src.Color.Name))
                .ForMember(
                    dest => dest.Species,
                           opts => opts.MapFrom(src => src.Species.Name))
                .ForMember(
                    dest => dest.Category,
                           opts => opts.MapFrom(src => src.Species.Category.Name))
                .ForMember(
                    dest => dest.Rating,
                           opts => opts.MapFrom(src => (src.Ratings.Count == 0) ? 0 : (double)src.Ratings.Sum(r => r.Value) / src.Ratings.Count))
                .ForMember(
                    dest => dest.Image,
                           opts => opts.MapFrom(src => src.Image.Image));
        }
 public void Init()
 {
     this.controller =
         MyWebApi.Controller <NewsArticlesController>()
         .WithResolvedDependencies(Services.GetNewsArticlesService(), Services.GetPubnubBroadcaster());
 }
 public void Init()
 {
     this.controller = MyWebApi
         .Controller<CommitsController>()
         .WithResolvedDependencies(TestObjectFactory.GetCommitsService());
 }
 public static IActionRouteBuilder AddRoute <TController, TResult>(
     this IControllerBuilder <TController> builder,
     Expression <Func <TController, TResult> > expression)
 {
     return(builder.AddRoute(RoutingDefaults.DefaultTemplate, expression));
 }