ViewModelHelper.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Microsoft.Extensions.DependencyInjection;
  2. using PixiEditor.Models.Controllers;
  3. using PixiEditor.Models.Tools;
  4. using PixiEditor.Models.UserPreferences;
  5. using PixiEditor.ViewModels;
  6. using PixiEditor.ViewModels.SubViewModels.Main;
  7. using PixiEditorTests.Mocks;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace PixiEditorTests.HelpersTests
  14. {
  15. public static class ViewModelHelper
  16. {
  17. public static IServiceCollection GetViewModelMainCollection()
  18. {
  19. return new ServiceCollection()
  20. .AddScoped<IPreferences, PreferenceSettingsMock>()
  21. .AddSingleton<BitmapManager>();
  22. }
  23. public static ViewModelMain MockedViewModelMain()
  24. {
  25. IServiceCollection provider = MockedServiceCollection();
  26. return new ViewModelMain(provider);
  27. }
  28. public static IServiceCollection MockedServiceCollection()
  29. {
  30. return new ServiceCollection()
  31. .AddSingleton<IPreferences>(new Mocks.PreferenceSettingsMock())
  32. .AddSingleton<StylusViewModel>()
  33. .AddSingleton<BitmapManager>()
  34. .AddSingleton<ToolsViewModel>();
  35. }
  36. public static T BuildMockedTool<T>(bool requireViewModelMain = false)
  37. where T : Tool
  38. {
  39. IServiceProvider services;
  40. if (requireViewModelMain)
  41. {
  42. services = MockedViewModelMain().Services;
  43. }
  44. else
  45. {
  46. services = MockedServiceCollection().BuildServiceProvider();
  47. }
  48. return ToolBuilder.BuildTool<T>(services);
  49. }
  50. }
  51. }