TilemapLayerTests.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using System.Linq;
  2. using MonoGame.Extended.Tilemaps;
  3. namespace MonoGame.Extended.Tests;
  4. public sealed class TilemapLayerTests
  5. {
  6. [Fact]
  7. public void GetLayer_WithExistingLayer_ReturnsLayer()
  8. {
  9. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  10. var layer = new TilemapTileLayer("TestLayer", 10, 10, 32, 32);
  11. tilemap.Layers.Add(layer);
  12. var result = tilemap.Layers["TestLayer"];
  13. Assert.Equal(layer, result);
  14. }
  15. [Fact]
  16. public void GetLayer_WithNonExistingLayer_ReturnsNull()
  17. {
  18. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  19. var hasLayer = tilemap.Layers.TryGetValue("NonExistent", out var result);
  20. Assert.False(hasLayer);
  21. Assert.Null(result);
  22. }
  23. [Fact]
  24. public void GetLayer_Generic_WithCorrectType_ReturnsLayer()
  25. {
  26. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  27. var tileLayer = new TilemapTileLayer("TileLayer", 10, 10, 32, 32);
  28. tilemap.Layers.Add(tileLayer);
  29. var result = tilemap.Layers.GetLayer<TilemapTileLayer>("TileLayer");
  30. Assert.Equal(tileLayer, result);
  31. }
  32. [Fact]
  33. public void GetLayer_Generic_WithWrongType_ReturnsNull()
  34. {
  35. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  36. var tileLayer = new TilemapTileLayer("TileLayer", 10, 10, 32, 32);
  37. tilemap.Layers.Add(tileLayer);
  38. var result = tilemap.Layers.GetLayer<TilemapObjectLayer>("TileLayer");
  39. Assert.Null(result);
  40. }
  41. [Fact]
  42. public void GetLayers_Generic_ReturnsLayersOfType()
  43. {
  44. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  45. var tileLayer1 = new TilemapTileLayer("Tiles1", 10, 10, 32, 32);
  46. var tileLayer2 = new TilemapTileLayer("Tiles2", 10, 10, 32, 32);
  47. var objectLayer = new TilemapObjectLayer("Objects");
  48. tilemap.Layers.Add(tileLayer1);
  49. tilemap.Layers.Add(objectLayer);
  50. tilemap.Layers.Add(tileLayer2);
  51. var tileLayers = tilemap.Layers.GetLayers<TilemapTileLayer>().ToList();
  52. Assert.Equal(2, tileLayers.Count);
  53. Assert.Contains(tileLayer1, tileLayers);
  54. Assert.Contains(tileLayer2, tileLayers);
  55. // Assert.DoesNotContain(objectLayer, tileLayers);
  56. }
  57. [Fact]
  58. public void GetLayers_Generic_WithNoMatchingLayers_ReturnsEmpty()
  59. {
  60. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  61. var tileLayer = new TilemapTileLayer("Tiles", 10, 10, 32, 32);
  62. tilemap.Layers.Add(tileLayer);
  63. var objectLayers = tilemap.Layers.GetLayers<TilemapObjectLayer>().ToList();
  64. Assert.Empty(objectLayers);
  65. }
  66. [Fact]
  67. public void GetLayers_Generic_WithMixedLayers_ReturnsOnlyMatchingType()
  68. {
  69. var tilemap = new Tilemap("test", 10, 10, 32, 32, TilemapOrientation.Orthogonal);
  70. var tileLayer = new TilemapTileLayer("Tiles", 10, 10, 32, 32);
  71. var objectLayer1 = new TilemapObjectLayer("Objects1");
  72. var objectLayer2 = new TilemapObjectLayer("Objects2");
  73. var groupLayer = new TilemapGroupLayer("Group");
  74. tilemap.Layers.Add(tileLayer);
  75. tilemap.Layers.Add(objectLayer1);
  76. tilemap.Layers.Add(groupLayer);
  77. tilemap.Layers.Add(objectLayer2);
  78. var objectLayers = tilemap.Layers.GetLayers<TilemapObjectLayer>().ToList();
  79. Assert.Equal(2, objectLayers.Count);
  80. Assert.Contains(objectLayer1, objectLayers);
  81. Assert.Contains(objectLayer2, objectLayers);
  82. }
  83. }