ViewModelMainTests.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using System.Windows;
  2. using System.Windows.Input;
  3. using System.Windows.Media;
  4. using PixiEditor;
  5. using PixiEditor.Models.Controllers;
  6. using PixiEditor.Models.DataHolders;
  7. using PixiEditor.Models.Position;
  8. using PixiEditor.Models.Tools;
  9. using PixiEditor.ViewModels;
  10. using Xunit;
  11. namespace PixiEditorTests.ViewModelsTests
  12. {
  13. public class ViewModelMainTests
  14. {
  15. public ViewModelMainTests()
  16. {
  17. if (Application.Current == null)
  18. {
  19. var app = new App();
  20. app.InitializeComponent();
  21. }
  22. }
  23. [StaFact]
  24. public void TestThatConstructorSetsUpControllersCorrectly()
  25. {
  26. ViewModelMain viewModel = new ViewModelMain();
  27. Assert.Equal(viewModel, UndoManager.MainRoot);
  28. Assert.NotNull(viewModel.ChangesController);
  29. Assert.NotNull(viewModel.ShortcutController);
  30. Assert.NotEmpty(viewModel.ShortcutController.Shortcuts);
  31. Assert.NotNull(viewModel.BitmapManager);
  32. Assert.Equal(viewModel, ViewModelMain.Current);
  33. }
  34. [StaFact]
  35. public void TestThatSwapColorsCommandSwapsColors()
  36. {
  37. ViewModelMain viewModel = new ViewModelMain();
  38. viewModel.PrimaryColor = Colors.Black;
  39. viewModel.SecondaryColor = Colors.White;
  40. viewModel.SwapColorsCommand.Execute(null);
  41. Assert.Equal(Colors.White, viewModel.PrimaryColor);
  42. Assert.Equal(Colors.Black, viewModel.SecondaryColor);
  43. }
  44. [StaFact]
  45. public void TestThatNewDocumentCreatesNewDocumentWithBaseLayer()
  46. {
  47. ViewModelMain viewModel = new ViewModelMain();
  48. viewModel.NewDocument(5,5);
  49. Assert.NotNull(viewModel.BitmapManager.ActiveDocument);
  50. Assert.Single(viewModel.BitmapManager.ActiveDocument.Layers);
  51. }
  52. [StaFact]
  53. public void TestThatMouseMoveCommandUpdatesCurrentCoordinates()
  54. {
  55. ViewModelMain viewModel = new ViewModelMain();
  56. Assert.Equal(new Coordinates(0, 0), MousePositionConverter.CurrentCoordinates);
  57. viewModel.MouseXOnCanvas = 5;
  58. viewModel.MouseYOnCanvas = 5;
  59. viewModel.MouseMoveCommand.Execute(null);
  60. Assert.Equal(new Coordinates(5,5), MousePositionConverter.CurrentCoordinates);
  61. }
  62. [StaFact]
  63. public void TestThatSelectToolCommandSelectsNewTool()
  64. {
  65. ViewModelMain viewModel = new ViewModelMain();
  66. Assert.Equal(ToolType.Move,viewModel.BitmapManager.SelectedTool.ToolType);
  67. viewModel.SelectToolCommand.Execute(ToolType.Line);
  68. Assert.Equal(ToolType.Line, viewModel.BitmapManager.SelectedTool.ToolType);
  69. }
  70. [StaFact]
  71. public void TestThatMouseUpCommandStopsRecordingMouseMovements()
  72. {
  73. ViewModelMain viewModel = new ViewModelMain();
  74. viewModel.BitmapManager.MouseController.StartRecordingMouseMovementChanges(true);
  75. Assert.True(viewModel.BitmapManager.MouseController.IsRecordingChanges);
  76. viewModel.MouseUpCommand.Execute(null);
  77. Assert.False(viewModel.BitmapManager.MouseController.IsRecordingChanges);
  78. }
  79. [StaFact]
  80. public void TestThatNewLayerCommandCreatesNewLayer()
  81. {
  82. ViewModelMain viewModel = new ViewModelMain();
  83. viewModel.BitmapManager.ActiveDocument = new Document(1,1);
  84. Assert.Empty(viewModel.BitmapManager.ActiveDocument.Layers);
  85. viewModel.NewLayerCommand.Execute(null);
  86. Assert.Single(viewModel.BitmapManager.ActiveDocument.Layers);
  87. }
  88. }
  89. }