BitmapManagerTests.cs 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using PixiEditor.Models.Controllers;
  2. using PixiEditor.Models.DataHolders;
  3. using PixiEditor.Models.Position;
  4. using SkiaSharp;
  5. using Xunit;
  6. namespace PixiEditorTests.ModelsTests.ControllersTests
  7. {
  8. public class BitmapManagerTests
  9. {
  10. [Fact]
  11. public void TestThatBitmapManagerSetsCorrectTool()
  12. {
  13. BitmapManager bitmapManager = new BitmapManager();
  14. bitmapManager.SetActiveTool(new MockedSinglePixelPenTool());
  15. Assert.Equal(typeof(MockedSinglePixelPenTool), bitmapManager.SelectedTool.GetType());
  16. }
  17. [Fact]
  18. public void TestThatBitmapManagerAddsEmptyNewLayer()
  19. {
  20. string layerName = "TestLayer";
  21. BitmapManager bitmapManager = new BitmapManager
  22. {
  23. ActiveDocument = new Document(10, 10)
  24. };
  25. bitmapManager.ActiveDocument.AddNewLayer(layerName);
  26. Assert.Single(bitmapManager.ActiveDocument.Layers);
  27. Assert.Equal(layerName, bitmapManager.ActiveDocument.ActiveLayer.Name);
  28. Assert.Equal(0, bitmapManager.ActiveDocument.ActiveLayer.Width + bitmapManager.ActiveDocument.ActiveLayer.Height);
  29. }
  30. [Fact]
  31. public void TestThatBitmapManagerRemovesLayer()
  32. {
  33. BitmapManager bitmapManager = new BitmapManager
  34. {
  35. ActiveDocument = new Document(10, 10)
  36. };
  37. bitmapManager.ActiveDocument.AddNewLayer("_");
  38. bitmapManager.ActiveDocument.AddNewLayer("_1");
  39. Assert.Equal(2, bitmapManager.ActiveDocument.Layers.Count);
  40. bitmapManager.ActiveDocument.RemoveLayer(0);
  41. Assert.Single(bitmapManager.ActiveDocument.Layers);
  42. }
  43. [Fact]
  44. public void TestThatGeneratePreviewLayerGeneratesPreviewLayer()
  45. {
  46. BitmapManager bitmapManager = new BitmapManager
  47. {
  48. ActiveDocument = new Document(10, 10)
  49. };
  50. bitmapManager.ActiveDocument.GeneratePreviewLayer();
  51. Assert.NotNull(bitmapManager.ActiveDocument.PreviewLayer);
  52. Assert.Equal(0, bitmapManager.ActiveDocument.PreviewLayer.Width + bitmapManager.ActiveDocument.PreviewLayer.Height); // Size is zero
  53. Assert.Equal(0, bitmapManager.ActiveDocument.PreviewLayer.OffsetX + bitmapManager.ActiveDocument.PreviewLayer.OffsetY); // Offset is zero
  54. Assert.Equal(bitmapManager.ActiveDocument.Width, bitmapManager.ActiveDocument.PreviewLayer.MaxWidth);
  55. Assert.Equal(bitmapManager.ActiveDocument.Height, bitmapManager.ActiveDocument.PreviewLayer.MaxHeight);
  56. }
  57. [Fact]
  58. public void TestThatIsOperationToolWorks()
  59. {
  60. MockedSinglePixelPenTool singlePixelPen = new MockedSinglePixelPenTool();
  61. Assert.True(BitmapManager.IsOperationTool(singlePixelPen));
  62. }
  63. [StaFact]
  64. public void TestThatBitmapChangesExecuteToolExecutesPenTool()
  65. {
  66. BitmapManager bitmapManager = new BitmapManager
  67. {
  68. Documents = new System.Collections.ObjectModel.ObservableCollection<Document>()
  69. {
  70. new Document(5, 5)
  71. }
  72. };
  73. bitmapManager.ActiveDocument = bitmapManager.Documents[0];
  74. bitmapManager.ActiveDocument.AddNewLayer("Layer");
  75. bitmapManager.SetActiveTool(new MockedSinglePixelPenTool());
  76. bitmapManager.PrimaryColor = SKColors.Black;
  77. bitmapManager.MouseController.StartRecordingMouseMovementChanges(true);
  78. bitmapManager.MouseController.RecordMouseMovementChange(new Coordinates(1, 1));
  79. bitmapManager.MouseController.StopRecordingMouseMovementChanges();
  80. bitmapManager.ExecuteTool(new Coordinates(1, 1), true);
  81. Assert.Equal(SKColors.Black, bitmapManager.ActiveLayer.GetPixelWithOffset(1, 1));
  82. }
  83. }
  84. }