public ThemeViewModelFactory( IResourceProvider resourceProvider, ThemesNamesConfiguration themesNamesConfiguration) { _resourceProvider = resourceProvider; _themesNamesConfiguration = themesNamesConfiguration; }
private static void RegisterThemesNamesConfiguration(IMutableDependencyResolver services, IConfiguration configuration) { var config = new ThemesNamesConfiguration(); configuration.GetSection("Themes").Bind(config); services.RegisterConstant(config); }
public void TestCreateAll() { var config = new ThemesNamesConfiguration { ThemeToResourceMapping = new Dictionary <Theme, string> { [Theme.Dark] = DarkResourceName, [Theme.Light] = LightResourceName } }; _autoMocker.Use(config); _autoMocker .Setup <IResourceProvider, string>(m => m.GetResourceByName(DarkResourceName)) .Returns(DarkThemeName); _autoMocker .Setup <IResourceProvider, string>(m => m.GetResourceByName(LightResourceName)) .Returns(LightThemeName); var factory = _autoMocker.CreateInstance <ThemeViewModelFactory>(); var viewModels = factory.CreateAll(); Assert.NotNull(viewModels); Assert.Equal(2, viewModels.Count); var darkThemeVm = viewModels[0]; var lightThemeVm = viewModels[1]; Assert.NotNull(darkThemeVm); Assert.NotNull(lightThemeVm); Assert.Equal(Theme.Dark, darkThemeVm.Theme); Assert.Equal(Theme.Light, lightThemeVm.Theme); Assert.Equal(DarkThemeName, darkThemeVm.ThemeName); Assert.Equal(LightThemeName, lightThemeVm.ThemeName); }