TilemapTextObjectTests.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using Microsoft.Xna.Framework;
  2. using MonoGame.Extended.Tilemaps;
  3. namespace MonoGame.Extended.Tests;
  4. public sealed class TilemapTextObjectTests
  5. {
  6. [Fact]
  7. public void Constructor_SetsProperties()
  8. {
  9. var obj = new TilemapTextObject(1, new Vector2(10, 20), new Vector2(100, 50), "Hello World");
  10. Assert.Equal(1, obj.Id);
  11. Assert.Equal(new Vector2(10, 20), obj.Position);
  12. Assert.Equal(new Vector2(100, 50), obj.Size);
  13. Assert.Equal("Hello World", obj.Text);
  14. }
  15. [Fact]
  16. public void Bounds_ReturnsRectangleWithSize()
  17. {
  18. var obj = new TilemapTextObject(1, new Vector2(10, 20), new Vector2(100, 50), "Test");
  19. var bounds = obj.Bounds;
  20. Assert.Equal(10, bounds.X);
  21. Assert.Equal(20, bounds.Y);
  22. Assert.Equal(100, bounds.Width);
  23. Assert.Equal(50, bounds.Height);
  24. }
  25. [Fact]
  26. public void Constructor_SetsDefaultFontProperties()
  27. {
  28. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  29. Assert.Equal("sans-serif", obj.FontFamily);
  30. Assert.Equal(16, obj.PixelSize);
  31. Assert.Equal(Color.Black, obj.Color);
  32. Assert.Equal(TilemapTextObjectHorizontalAlignment.Left, obj.HorizontalAlign);
  33. Assert.Equal(TilemapTextObjectVerticalAlignment.Top, obj.VerticalAlign);
  34. Assert.False(obj.Bold);
  35. Assert.False(obj.Italic);
  36. Assert.False(obj.Underline);
  37. Assert.False(obj.Strikethrough);
  38. Assert.False(obj.WordWrap);
  39. }
  40. [Fact]
  41. public void FontProperties_CanBeSet()
  42. {
  43. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  44. obj.FontFamily = "Arial";
  45. obj.PixelSize = 24;
  46. obj.Bold = true;
  47. obj.Italic = true;
  48. obj.Underline = true;
  49. obj.Strikethrough = true;
  50. // Assert
  51. Assert.Equal("Arial", obj.FontFamily);
  52. Assert.Equal(24, obj.PixelSize);
  53. Assert.True(obj.Bold);
  54. Assert.True(obj.Italic);
  55. Assert.True(obj.Underline);
  56. Assert.True(obj.Strikethrough);
  57. }
  58. [Fact]
  59. public void TextColor_CanBeSet()
  60. {
  61. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  62. obj.Color = Color.Red;
  63. Assert.Equal(Color.Red, obj.Color);
  64. }
  65. [Fact]
  66. public void Alignment_CanBeSet()
  67. {
  68. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  69. obj.HorizontalAlign = TilemapTextObjectHorizontalAlignment.Center;
  70. obj.VerticalAlign = TilemapTextObjectVerticalAlignment.Center;
  71. // Assert
  72. Assert.Equal(TilemapTextObjectHorizontalAlignment.Center, obj.HorizontalAlign);
  73. Assert.Equal(TilemapTextObjectVerticalAlignment.Center, obj.VerticalAlign);
  74. }
  75. [Fact]
  76. public void WordWrap_CanBeSet()
  77. {
  78. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  79. obj.WordWrap = true;
  80. Assert.True(obj.WordWrap);
  81. }
  82. [Fact]
  83. public void Size_CanBeModified()
  84. {
  85. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Test");
  86. obj.Size = new Vector2(200, 100);
  87. Assert.Equal(new Vector2(200, 100), obj.Size);
  88. Assert.Equal(200, obj.Bounds.Width);
  89. Assert.Equal(100, obj.Bounds.Height);
  90. }
  91. [Fact]
  92. public void Text_CanBeModified()
  93. {
  94. var obj = new TilemapTextObject(1, Vector2.Zero, new Vector2(100, 50), "Original");
  95. obj.Text = "Modified";
  96. Assert.Equal("Modified", obj.Text);
  97. }
  98. }