Пример #1
0
 public void SetupForDefaultBuilder()
 {
     _host = AppHostBuilder
             .CreateDefaultAppBuilder()
             .ConfigureServices((ctx, svc) => svc.AddTransient <IFooService, FooService>())
             .Build();
 }
Пример #2
0
 public void SetupForExtensionsWithConstructorInjection()
 {
     _host = AppHostBuilder
             .CreateDefaultAppBuilder()
             .UseServiceProviderFactory(new DIExtensionsServiceProviderFactory())
             .ConfigureServices((ctx, svc) => svc.AddTransient <IFooService, FooService>())
             .Build();
 }
Пример #3
0
        public void CanBuildAHost()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .Build();

            Assert.NotNull(host);
        }
Пример #4
0
        public void WillRetrieveSameSingletonServices()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .ConfigureServices((ctx, services) => services.AddSingleton <IFooService, FooService>())
                       .Build();

            AssertSingleton <IFooService, FooService>(host.Services);
        }
Пример #5
0
        public void WillRetrieveDifferentTransientServices()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .ConfigureServices((ctx, services) => services.AddTransient <IFooService, FooService>())
                       .Build();

            AssertTransient <IFooService, FooService>(host.Services);
        }
Пример #6
0
        public void CanGetServices()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .Build();

            Assert.NotNull(host);
            Assert.NotNull(host.Services);
        }
Пример #7
0
        public static IAppHostBuilder CreateAppHostBuilder(this IStartup startup)
        {
            if (startup is IAppHostBuilderStartup hostBuilderStartup)
            {
                return(hostBuilderStartup.CreateAppHostBuilder());
            }

            return(AppHostBuilder.CreateDefaultAppBuilder());
        }
Пример #8
0
        public void GetServiceThrowsWhenConstructorParamTypesWereNotRegistered()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .UseMauiServiceProviderFactory(true)
                       .ConfigureServices((ctx, services) => services.AddTransient <IFooBarService, FooBarService>())
                       .Build();

            Assert.Throws <InvalidOperationException>(() => host.Services.GetService <IFooBarService>());
        }
Пример #9
0
        public void DefaultHandlersAreRegistered()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .Build();

            var handler = host.Handlers.GetHandler(typeof(IButton));

            Assert.NotNull(handler);
            Assert.IsType <ButtonHandler>(handler);
        }
Пример #10
0
        public void CanRegisterAndGetHandlerWithType()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .ConfigureMauiHandlers((_, handlers) => handlers.AddHandler(typeof(IViewStub), typeof(ViewHandlerStub)))
                       .Build();

            var handler = host.Handlers.GetHandler(typeof(IViewStub));

            Assert.NotNull(handler);
            Assert.IsType <ViewHandlerStub>(handler);
        }
Пример #11
0
        public void CanRegisterAndGetHandlerForType()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .RegisterHandler <IViewStub, ViewHandlerStub>()
                       .Build();

            var handler = host.Handlers.GetHandler(typeof(ViewStub));

            Assert.NotNull(handler);
            Assert.IsType <ViewHandlerStub>(handler);
        }
Пример #12
0
        public void CanGetIMauiHandlersServiceProviderFromServices()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .Build();

            Assert.NotNull(host);
            Assert.NotNull(host.Services);
            Assert.NotNull(host.Handlers);
            Assert.IsType <MauiHandlersServiceProvider>(host.Handlers);
            Assert.Equal(host.Handlers, host.Services.GetService <IMauiHandlersServiceProvider>());
        }
Пример #13
0
 public void SetupForExtensionsWithOneConstructorParameter()
 {
     _host = AppHostBuilder
             .CreateDefaultAppBuilder()
             .UseServiceProviderFactory(new DIExtensionsServiceProviderFactory())
             .ConfigureServices((ctx, svc) =>
     {
         svc.AddTransient <IFooService, FooService>();
         svc.AddTransient <IFooBarService, FooBarWithFooService>();
     })
             .Build();
 }
Пример #14
0
        public void GetServiceThrowsOnMultipleConstructors()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .UseMauiServiceProviderFactory(true)
                       .ConfigureServices((ctx, services) => services.AddTransient <IFooBarService, FooDualConstructor>())
                       .Build();

            var ex = Assert.Throws <InvalidOperationException>(() => host.Services.GetService <IFooBarService>());

            Assert.Contains("IFooService", ex.Message);
        }
Пример #15
0
 public void SetupForTwoConstructorParameters()
 {
     _host = AppHostBuilder
             .CreateDefaultAppBuilder()
             .UseMauiServiceProviderFactory(true)
             .ConfigureServices((ctx, svc) =>
     {
         svc.AddTransient <IFooService, FooService>();
         svc.AddTransient <IBarService, BarService>();
         svc.AddTransient <IFooBarService, FooBarWithFooAndBarService>();
     })
             .Build();
 }
Пример #16
0
        public void WillRetrieveMixedServices()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .ConfigureServices((ctx, services) =>
            {
                services.AddSingleton <IFooService, FooService>();
                services.AddTransient <IBarService, BarService>();
            })
                       .Build();

            AssertSingleton <IFooService, FooService>(host.Services);
            AssertTransient <IBarService, BarService>(host.Services);
        }
Пример #17
0
        public void CanRegisterAndGetHandlerWithDictionary()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .RegisterHandlers(new Dictionary <Type, Type>
            {
                { typeof(IViewStub), typeof(ViewHandlerStub) }
            })
                       .Build();

            var handler = host.Handlers.GetHandler(typeof(IViewStub));

            Assert.NotNull(handler);
            Assert.IsType <ViewHandlerStub>(handler);
        }
Пример #18
0
        public void CanSpecifyHandler()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .ConfigureMauiHandlers((_, handlers) => handlers.AddHandler <ButtonStub, ButtonHandlerStub>())
                       .Build();

            var defaultHandler  = host.Handlers.GetHandler(typeof(IButton));
            var specificHandler = host.Handlers.GetHandler(typeof(ButtonStub));

            Assert.NotNull(defaultHandler);
            Assert.NotNull(specificHandler);
            Assert.IsType <ButtonHandler>(defaultHandler);
            Assert.IsType <ButtonHandlerStub>(specificHandler);
        }
Пример #19
0
        public HandlerTestBase()
        {
            var appBuilder = AppHostBuilder
                             .CreateDefaultAppBuilder()
                             .ConfigureFonts((ctx, fonts) =>
            {
                fonts.AddFont("dokdo_regular.ttf", "Dokdo");
            });

            _host = appBuilder.Build();

            _app = new ApplicationStub();

            _context = new ContextStub(_host.Services);
        }
Пример #20
0
        public void CanSpecifyHandler()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .RegisterHandler <ButtonStub, ButtonHandlerStub>()
                       .Build();

            var defaultHandler  = host.Handlers.GetHandler(typeof(IButton));
            var specificHandler = host.Handlers.GetHandler(typeof(ButtonStub));

            Assert.NotNull(defaultHandler);
            Assert.NotNull(specificHandler);
            Assert.IsType <ButtonHandler>(defaultHandler);
            Assert.IsType <ButtonHandlerStub>(specificHandler);
        }
Пример #21
0
        public void GetServiceCanReturnTypesThatHaveConstructorParams()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .UseMauiServiceProviderFactory(true)
                       .ConfigureServices((ctx, services) =>
            {
                services.AddTransient <IFooService, FooService>();
                services.AddTransient <IBarService, BarService>();
                services.AddTransient <IFooBarService, FooBarService>();
            })
                       .Build();

            var foobar = host.Services.GetService <IFooBarService>();

            Assert.NotNull(foobar);
            Assert.IsType <FooBarService>(foobar);
        }
Пример #22
0
        public void GetServiceCanReturnTypesThatHaveUnregisteredConstructorParamsButHaveDefaultValues()
        {
            var host = AppHostBuilder
                       .CreateDefaultAppBuilder()
                       .UseMauiServiceProviderFactory(true)
                       .ConfigureServices((ctx, services) =>
            {
                services.AddTransient <IFooBarService, FooDefaultValueConstructor>();
            })
                       .Build();

            var foo = host.Services.GetService <IFooBarService>();

            Assert.NotNull(foo);

            var actual = Assert.IsType <FooDefaultValueConstructor>(foo);

            Assert.Null(actual.Bar);
        }
 public void SetupForDI()
 {
     _host = AppHostBuilder
             .CreateDefaultAppBuilder()
             .Build();
 }