BitmapManagerTests.cs 3.5 KB

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