SerializableDocumentTests.cs 3.6 KB

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