SerializableDocumentTests.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Linq;
  3. using System.Windows.Media;
  4. using System.Windows.Media.Imaging;
  5. using PixiEditor.Models.DataHolders;
  6. using PixiEditor.Models.Layers;
  7. using Xunit;
  8. namespace PixiEditorTests.ModelsTests.DataHoldersTests
  9. {
  10. public class SerializableDocumentTests
  11. {
  12. [Fact]
  13. public void TestThatSerializableDocumentCreatesCorrectly()
  14. {
  15. Document document = GenerateSampleDocument();
  16. SerializableDocument doc = new SerializableDocument(document);
  17. Color swatch = document.Swatches.First();
  18. Tuple<byte, byte, byte, byte> color = Tuple.Create(swatch.A, swatch.R, swatch.G, swatch.B);
  19. Assert.Equal(document.Width, doc.Width);
  20. Assert.Equal(document.Height, doc.Height);
  21. Assert.Equal(color, doc.Swatches.First());
  22. for (int i = 0; i < doc.Layers.Length; i++)
  23. {
  24. Assert.Equal(document.Layers[i].ConvertBitmapToBytes(), doc.Layers[i].BitmapBytes);
  25. Assert.Equal(document.Layers[i].OffsetX, doc.Layers[i].OffsetX);
  26. Assert.Equal(document.Layers[i].OffsetY, doc.Layers[i].OffsetY);
  27. Assert.Equal(document.Layers[i].Width, doc.Layers[i].Width);
  28. Assert.Equal(document.Layers[i].Height, doc.Layers[i].Height);
  29. Assert.Equal(document.Layers[i].MaxWidth, doc.Layers[i].MaxWidth);
  30. Assert.Equal(document.Layers[i].MaxHeight, doc.Layers[i].MaxHeight);
  31. Assert.Equal(document.Layers[i].IsVisible, doc.Layers[i].IsVisible);
  32. Assert.Equal(document.Layers[i].Opacity, doc.Layers[i].Opacity);
  33. }
  34. }
  35. [Fact]
  36. public void TestThatToDocumentConvertsCorrectly()
  37. {
  38. Document document = GenerateSampleDocument();
  39. SerializableDocument doc = new SerializableDocument(document);
  40. Document convertedDocument = doc.ToDocument();
  41. Assert.Equal(document.Height, convertedDocument.Height);
  42. Assert.Equal(document.Width, convertedDocument.Width);
  43. Assert.Equal(document.Swatches, convertedDocument.Swatches);
  44. Assert.Equal(
  45. document.Layers.Select(x => x.LayerBitmap.ToByteArray()),
  46. convertedDocument.Layers.Select(x => x.LayerBitmap.ToByteArray()));
  47. }
  48. [Fact]
  49. public void TestThatToLayersConvertsCorrectly()
  50. {
  51. Document document = GenerateSampleDocument();
  52. SerializableDocument doc = new SerializableDocument(document);
  53. System.Collections.ObjectModel.ObservableCollection<Layer> layers = doc.ToLayers();
  54. for (int i = 0; i < layers.Count; i++)
  55. {
  56. Assert.Equal(document.Layers[i].LayerBitmap.ToByteArray(), layers[i].ConvertBitmapToBytes());
  57. Assert.Equal(document.Layers[i].Height, layers[i].Height);
  58. Assert.Equal(document.Layers[i].Width, layers[i].Width);
  59. Assert.Equal(document.Layers[i].MaxHeight, layers[i].MaxHeight);
  60. Assert.Equal(document.Layers[i].MaxWidth, layers[i].MaxWidth);
  61. Assert.Equal(document.Layers[i].Offset, layers[i].Offset);
  62. Assert.Equal(document.Layers[i].Opacity, layers[i].Opacity);
  63. Assert.Equal(document.Layers[i].IsVisible, layers[i].IsVisible);
  64. }
  65. }
  66. private static Document GenerateSampleDocument()
  67. {
  68. Document document = new Document(10, 10);
  69. document.Layers.Add(new Layer("Test", 5, 8));
  70. document.Swatches.Add(Colors.Green);
  71. return document;
  72. }
  73. }
  74. }