PixelChangesControllerTests.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 PixelChangesControllerTests
  10. {
  11. [Fact]
  12. public void TestThatPopChangesPopsChanges()
  13. {
  14. var controller = CreateBasicController();
  15. var changes = controller.PopChanges();
  16. Assert.NotEmpty(changes);
  17. Assert.Null(controller.PopChanges());
  18. }
  19. [Fact]
  20. public void TestThatAddChangesAddsAsNewChange()
  21. {
  22. var controller = CreateBasicController();
  23. Coordinates[] cords = { new Coordinates(5, 3), new Coordinates(7, 2) };
  24. controller.AddChanges(new LayerChange(
  25. BitmapPixelChanges.FromSingleColoredArray(cords, Colors.Black), 1),
  26. new LayerChange(BitmapPixelChanges.FromSingleColoredArray(cords, Colors.Transparent), 1));
  27. var changes = controller.PopChanges();
  28. Assert.Equal(2, changes.Length);
  29. }
  30. [Fact]
  31. public void TestThatAddChangesAddsToExistingChange()
  32. {
  33. Coordinates[] cords2 = { new Coordinates(2, 2), new Coordinates(5, 5) };
  34. var controller = CreateBasicController();
  35. controller.AddChanges(new LayerChange(
  36. BitmapPixelChanges.FromSingleColoredArray(cords2, Colors.Black), 0),
  37. new LayerChange(BitmapPixelChanges.FromSingleColoredArray(cords2, Colors.Transparent), 0));
  38. var changes = controller.PopChanges();
  39. Assert.Single(changes);
  40. Assert.Equal(4, changes[0].Item1.PixelChanges.ChangedPixels.Count);
  41. Assert.Equal(4, changes[0].Item2.PixelChanges.ChangedPixels.Count);
  42. }
  43. private static PixelChangesController CreateBasicController()
  44. {
  45. Coordinates[] cords = { new Coordinates(0, 0), new Coordinates(1, 1) };
  46. PixelChangesController controller = new PixelChangesController();
  47. controller.AddChanges(new LayerChange(
  48. BitmapPixelChanges.FromSingleColoredArray(cords, Colors.Black), 0),
  49. new LayerChange(BitmapPixelChanges.FromSingleColoredArray(cords, Colors.Transparent), 0));
  50. return controller;
  51. }
  52. }
  53. }