1
0

EntityWhitelistTest.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using System.Linq;
  2. using Content.Shared.Containers.ItemSlots;
  3. using Content.Shared.Whitelist;
  4. using Robust.Shared.GameObjects;
  5. namespace Content.IntegrationTests.Tests.Utility
  6. {
  7. [TestFixture]
  8. [TestOf(typeof(EntityWhitelist))]
  9. public sealed class EntityWhitelistTest
  10. {
  11. private const string InvalidComponent = "Sprite";
  12. private const string ValidComponent = "Physics";
  13. [TestPrototypes]
  14. private const string Prototypes = $@"
  15. - type: Tag
  16. id: WhitelistTestValidTag
  17. - type: Tag
  18. id: WhitelistTestInvalidTag
  19. - type: entity
  20. id: WhitelistDummy
  21. components:
  22. - type: ItemSlots
  23. slots:
  24. slotName:
  25. whitelist:
  26. prototypes:
  27. - ValidPrototypeDummy
  28. components:
  29. - {ValidComponent}
  30. tags:
  31. - WhitelistTestValidTag
  32. - type: entity
  33. id: InvalidComponentDummy
  34. components:
  35. - type: {InvalidComponent}
  36. - type: entity
  37. id: WhitelistTestInvalidTagDummy
  38. components:
  39. - type: Tag
  40. tags:
  41. - WhitelistTestInvalidTag
  42. - type: entity
  43. id: ValidComponentDummy
  44. components:
  45. - type: {ValidComponent}
  46. - type: entity
  47. id: WhitelistTestValidTagDummy
  48. components:
  49. - type: Tag
  50. tags:
  51. - WhitelistTestValidTag";
  52. [Test]
  53. public async Task Test()
  54. {
  55. await using var pair = await PoolManager.GetServerClient();
  56. var server = pair.Server;
  57. var testMap = await pair.CreateTestMap();
  58. var mapCoordinates = testMap.MapCoords;
  59. var sEntities = server.EntMan;
  60. var sys = server.System<EntityWhitelistSystem>();
  61. await server.WaitAssertion(() =>
  62. {
  63. var validComponent = sEntities.SpawnEntity("ValidComponentDummy", mapCoordinates);
  64. var WhitelistTestValidTag = sEntities.SpawnEntity("WhitelistTestValidTagDummy", mapCoordinates);
  65. var invalidComponent = sEntities.SpawnEntity("InvalidComponentDummy", mapCoordinates);
  66. var WhitelistTestInvalidTag = sEntities.SpawnEntity("WhitelistTestInvalidTagDummy", mapCoordinates);
  67. // Test instantiated on its own
  68. var whitelistInst = new EntityWhitelist
  69. {
  70. Components = new[] { $"{ValidComponent}" },
  71. Tags = new() { "WhitelistTestValidTag" }
  72. };
  73. Assert.Multiple(() =>
  74. {
  75. Assert.That(sys.IsValid(whitelistInst, validComponent), Is.True);
  76. Assert.That(sys.IsValid(whitelistInst, WhitelistTestValidTag), Is.True);
  77. Assert.That(sys.IsValid(whitelistInst, invalidComponent), Is.False);
  78. Assert.That(sys.IsValid(whitelistInst, WhitelistTestInvalidTag), Is.False);
  79. });
  80. // Test from serialized
  81. var dummy = sEntities.SpawnEntity("WhitelistDummy", mapCoordinates);
  82. var whitelistSer = sEntities.GetComponent<ItemSlotsComponent>(dummy).Slots.Values.First().Whitelist;
  83. Assert.That(whitelistSer, Is.Not.Null);
  84. Assert.Multiple(() =>
  85. {
  86. Assert.That(whitelistSer.Components, Is.Not.Null);
  87. Assert.That(whitelistSer.Tags, Is.Not.Null);
  88. });
  89. Assert.Multiple(() =>
  90. {
  91. Assert.That(sys.IsValid(whitelistSer, validComponent), Is.True);
  92. Assert.That(sys.IsValid(whitelistSer, WhitelistTestValidTag), Is.True);
  93. Assert.That(sys.IsValid(whitelistSer, invalidComponent), Is.False);
  94. Assert.That(sys.IsValid(whitelistSer, WhitelistTestInvalidTag), Is.False);
  95. });
  96. });
  97. await pair.CleanReturnAsync();
  98. }
  99. }
  100. }