QueryTests.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Content.Server.Administration.Logs;
  4. using Content.Server.GameTicking;
  5. using Content.Shared.Database;
  6. using Robust.Server.Player;
  7. using Robust.Shared.GameObjects;
  8. using Robust.Shared.Player;
  9. namespace Content.IntegrationTests.Tests.Administration.Logs;
  10. [TestFixture]
  11. [TestOf(typeof(AdminLogSystem))]
  12. public sealed class QueryTests
  13. {
  14. [Test]
  15. public async Task QuerySingleLog()
  16. {
  17. await using var pair = await PoolManager.GetServerClient(AddTests.LogTestSettings);
  18. var server = pair.Server;
  19. var sSystems = server.ResolveDependency<IEntitySystemManager>();
  20. var sPlayers = server.ResolveDependency<IPlayerManager>();
  21. var sAdminLogSystem = server.ResolveDependency<IAdminLogManager>();
  22. var sGamerTicker = sSystems.GetEntitySystem<GameTicker>();
  23. var date = DateTime.UtcNow;
  24. var guid = Guid.NewGuid();
  25. ICommonSession player = default;
  26. await server.WaitPost(() =>
  27. {
  28. player = sPlayers.Sessions.First();
  29. sAdminLogSystem.Add(LogType.Unknown, $"{player.AttachedEntity:Entity} test log: {guid}");
  30. });
  31. var filter = new LogFilter
  32. {
  33. Round = sGamerTicker.RoundId,
  34. Search = guid.ToString(),
  35. Types = new HashSet<LogType> { LogType.Unknown },
  36. After = date,
  37. AnyPlayers = new[] { player.UserId.UserId }
  38. };
  39. await PoolManager.WaitUntil(server, async () =>
  40. {
  41. foreach (var _ in await sAdminLogSystem.All(filter))
  42. {
  43. return true;
  44. }
  45. return false;
  46. });
  47. await pair.CleanReturnAsync();
  48. }
  49. }