LocalizedDatasetPrototypeTest.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Linq;
  2. using Content.Shared.Dataset;
  3. using Robust.Shared.Localization;
  4. using Robust.Shared.Prototypes;
  5. namespace Content.IntegrationTests.Tests.Localization;
  6. [TestFixture]
  7. public sealed class LocalizedDatasetPrototypeTest
  8. {
  9. [Test]
  10. public async Task ValidProtoIdsTest()
  11. {
  12. await using var pair = await PoolManager.GetServerClient();
  13. var server = pair.Server;
  14. var protoMan = server.ResolveDependency<IPrototypeManager>();
  15. var localizationMan = server.ResolveDependency<ILocalizationManager>();
  16. var protos = protoMan.EnumeratePrototypes<LocalizedDatasetPrototype>().OrderBy(p => p.ID);
  17. Assert.Multiple(() =>
  18. {
  19. // Check each prototype
  20. foreach (var proto in protos)
  21. {
  22. // Check each value in the prototype
  23. foreach (var locId in proto.Values)
  24. {
  25. // Make sure the localization manager has a string for the LocId
  26. Assert.That(localizationMan.HasString(locId), $"LocalizedDataset {proto.ID} with prefix \"{proto.Values.Prefix}\" specifies {proto.Values.Count} entries, but no localized string was found matching {locId}!");
  27. }
  28. }
  29. });
  30. await pair.CleanReturnAsync();
  31. }
  32. }