Esempio n. 1
0
 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);
    }