BitmapManagerTests.cs 3.5 KB

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