public void SetupForDefaultBuilder() { _host = AppHostBuilder .CreateDefaultAppBuilder() .ConfigureServices((ctx, svc) => svc.AddTransient <IFooService, FooService>()) .Build(); }
public void SetupForExtensionsWithConstructorInjection() { _host = AppHostBuilder .CreateDefaultAppBuilder() .UseServiceProviderFactory(new DIExtensionsServiceProviderFactory()) .ConfigureServices((ctx, svc) => svc.AddTransient <IFooService, FooService>()) .Build(); }
public void CanBuildAHost() { var host = AppHostBuilder .CreateDefaultAppBuilder() .Build(); Assert.NotNull(host); }
public void WillRetrieveSameSingletonServices() { var host = AppHostBuilder .CreateDefaultAppBuilder() .ConfigureServices((ctx, services) => services.AddSingleton <IFooService, FooService>()) .Build(); AssertSingleton <IFooService, FooService>(host.Services); }
public void WillRetrieveDifferentTransientServices() { var host = AppHostBuilder .CreateDefaultAppBuilder() .ConfigureServices((ctx, services) => services.AddTransient <IFooService, FooService>()) .Build(); AssertTransient <IFooService, FooService>(host.Services); }
public void CanGetServices() { var host = AppHostBuilder .CreateDefaultAppBuilder() .Build(); Assert.NotNull(host); Assert.NotNull(host.Services); }
public static IAppHostBuilder CreateAppHostBuilder(this IStartup startup) { if (startup is IAppHostBuilderStartup hostBuilderStartup) { return(hostBuilderStartup.CreateAppHostBuilder()); } return(AppHostBuilder.CreateDefaultAppBuilder()); }
public void GetServiceThrowsWhenConstructorParamTypesWereNotRegistered() { var host = AppHostBuilder .CreateDefaultAppBuilder() .UseMauiServiceProviderFactory(true) .ConfigureServices((ctx, services) => services.AddTransient <IFooBarService, FooBarService>()) .Build(); Assert.Throws <InvalidOperationException>(() => host.Services.GetService <IFooBarService>()); }
public void DefaultHandlersAreRegistered() { var host = AppHostBuilder .CreateDefaultAppBuilder() .Build(); var handler = host.Handlers.GetHandler(typeof(IButton)); Assert.NotNull(handler); Assert.IsType <ButtonHandler>(handler); }
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); }
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); }
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>()); }
public void SetupForExtensionsWithOneConstructorParameter() { _host = AppHostBuilder .CreateDefaultAppBuilder() .UseServiceProviderFactory(new DIExtensionsServiceProviderFactory()) .ConfigureServices((ctx, svc) => { svc.AddTransient <IFooService, FooService>(); svc.AddTransient <IFooBarService, FooBarWithFooService>(); }) .Build(); }
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); }
public void SetupForTwoConstructorParameters() { _host = AppHostBuilder .CreateDefaultAppBuilder() .UseMauiServiceProviderFactory(true) .ConfigureServices((ctx, svc) => { svc.AddTransient <IFooService, FooService>(); svc.AddTransient <IBarService, BarService>(); svc.AddTransient <IFooBarService, FooBarWithFooAndBarService>(); }) .Build(); }
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); }
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); }
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); }
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); }
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); }
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); }
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(); }