// Copyright (c) Craftwork Games. All rights reserved.
// Licensed under the MIT license.
// See LICENSE file in the project root for full license information.
using System.Text;
using System.Xml;
using Microsoft.Xna.Framework;
using MonoGame.Extended.Serialization.Xml;
namespace MonoGame.Extended.Tests.Serialization.Xml;
public class XmlWriterExtensionsTests
{
private static (XmlWriter writer, StringBuilder output) CreateXmlWriter()
{
StringBuilder output = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(output, settings);
return (writer, output);
}
[Fact]
public void WriteAttributeInt_WritesCorrectAttribute()
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
writer.WriteStartElement("test");
writer.WriteAttributeInt("value", 1);
writer.WriteEndElement();
writer.Flush();
Assert.Equal("", output.ToString());
}
[Fact]
public void WriteAttributeFloat_WritesCorrectAttribute()
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
writer.WriteStartElement("test");
writer.WriteAttributeFloat("value", 1.2f);
writer.WriteEndElement();
writer.Flush();
Assert.Equal("", output.ToString());
}
[Theory]
[InlineData(true, "True")]
[InlineData(false, "False")]
public void WriteAttributeBool_WritesCorrectAttribute(bool value, string expected)
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
writer.WriteStartElement("test");
writer.WriteAttributeBool("value", value);
writer.WriteEndElement();
writer.Flush();
Assert.Equal($"", output.ToString());
}
[Fact]
public void WriteAttributeRectangle_WritesCorrectAttribute()
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
Rectangle rectangle = new Rectangle(1, 2, 3, 4);
writer.WriteStartElement("test");
writer.WriteAttributeRectangle("value", rectangle);
writer.WriteEndElement();
writer.Flush();
Assert.Equal($"", output.ToString());
}
[Fact]
public void WriteAttributeVector2_WriteCorrectValue()
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
Vector2 vector = new Vector2(1.1f, 2.2f);
writer.WriteStartElement("test");
writer.WriteAttributeVector2("value", vector);
writer.WriteEndElement();
writer.Flush();
Assert.Equal($"", output.ToString());
}
[Fact]
public void WriteAttributeVector3_WriteCorrectValue()
{
(XmlWriter writer, StringBuilder output) = CreateXmlWriter();
Vector3 vector = new Vector3(1.1f, 2.2f, 3.3f);
writer.WriteStartElement("test");
writer.WriteAttributeVector3("value", vector);
writer.WriteEndElement();
writer.Flush();
Assert.Equal($"", output.ToString());
}
}