XmlWriterExtensionsTests.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // Copyright (c) Craftwork Games. All rights reserved.
  2. // Licensed under the MIT license.
  3. // See LICENSE file in the project root for full license information.
  4. using System.Text;
  5. using System.Xml;
  6. using Microsoft.Xna.Framework;
  7. using MonoGame.Extended.Serialization.Xml;
  8. namespace MonoGame.Extended.Tests.Serialization.Xml;
  9. public class XmlWriterExtensionsTests
  10. {
  11. private static (XmlWriter writer, StringBuilder output) CreateXmlWriter()
  12. {
  13. StringBuilder output = new StringBuilder();
  14. XmlWriterSettings settings = new XmlWriterSettings();
  15. settings.OmitXmlDeclaration = true;
  16. settings.Indent = true;
  17. XmlWriter writer = XmlWriter.Create(output, settings);
  18. return (writer, output);
  19. }
  20. [Fact]
  21. public void WriteAttributeInt_WritesCorrectAttribute()
  22. {
  23. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  24. writer.WriteStartElement("test");
  25. writer.WriteAttributeInt("value", 1);
  26. writer.WriteEndElement();
  27. writer.Flush();
  28. Assert.Equal("<test value=\"1\" />", output.ToString());
  29. }
  30. [Fact]
  31. public void WriteAttributeFloat_WritesCorrectAttribute()
  32. {
  33. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  34. writer.WriteStartElement("test");
  35. writer.WriteAttributeFloat("value", 1.2f);
  36. writer.WriteEndElement();
  37. writer.Flush();
  38. Assert.Equal("<test value=\"1.2\" />", output.ToString());
  39. }
  40. [Theory]
  41. [InlineData(true, "True")]
  42. [InlineData(false, "False")]
  43. public void WriteAttributeBool_WritesCorrectAttribute(bool value, string expected)
  44. {
  45. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  46. writer.WriteStartElement("test");
  47. writer.WriteAttributeBool("value", value);
  48. writer.WriteEndElement();
  49. writer.Flush();
  50. Assert.Equal($"<test value=\"{expected}\" />", output.ToString());
  51. }
  52. [Fact]
  53. public void WriteAttributeRectangle_WritesCorrectAttribute()
  54. {
  55. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  56. Rectangle rectangle = new Rectangle(1, 2, 3, 4);
  57. writer.WriteStartElement("test");
  58. writer.WriteAttributeRectangle("value", rectangle);
  59. writer.WriteEndElement();
  60. writer.Flush();
  61. Assert.Equal($"<test value=\"{rectangle.X},{rectangle.Y},{rectangle.Width},{rectangle.Height}\" />", output.ToString());
  62. }
  63. [Fact]
  64. public void WriteAttributeVector2_WriteCorrectValue()
  65. {
  66. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  67. Vector2 vector = new Vector2(1.1f, 2.2f);
  68. writer.WriteStartElement("test");
  69. writer.WriteAttributeVector2("value", vector);
  70. writer.WriteEndElement();
  71. writer.Flush();
  72. Assert.Equal($"<test value=\"{vector.X},{vector.Y}\" />", output.ToString());
  73. }
  74. [Fact]
  75. public void WriteAttributeVector3_WriteCorrectValue()
  76. {
  77. (XmlWriter writer, StringBuilder output) = CreateXmlWriter();
  78. Vector3 vector = new Vector3(1.1f, 2.2f, 3.3f);
  79. writer.WriteStartElement("test");
  80. writer.WriteAttributeVector3("value", vector);
  81. writer.WriteEndElement();
  82. writer.Flush();
  83. Assert.Equal($"<test value=\"{vector.X},{vector.Y},{vector.Z}\" />", output.ToString());
  84. }
  85. }