You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CommandServiceConfigTests.cs 1.5 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Discord.Commands;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6. using Xunit;
  7. namespace Discord.Net.Commands.Tests
  8. {
  9. public partial class CommandServiceConfigTests
  10. {
  11. [Theory]
  12. [MemberData(nameof(SeparatorNodeTestData), MemberType = typeof(CommandServiceConfigTests))]
  13. public async Task CommandSeparators(CommandServiceConfig config, char separatorChar)
  14. {
  15. var service = new CommandService(config);
  16. var module = await service.AddModuleAsync(typeof(DummyModule)).ConfigureAwait(false);
  17. Assert.True(CommandsLoaded(service, separatorChar));
  18. var dummyContext = new DummyCommandContext();
  19. foreach (var _alias in DefaultAliases)
  20. {
  21. var alias = _alias.Replace(' ', separatorChar);
  22. var result = service.Search(dummyContext, alias);
  23. Assert.True(result.IsSuccess, result.ErrorReason);
  24. }
  25. }
  26. public bool CommandsLoaded(CommandService service, char separatorChar)
  27. {
  28. if (!service.Commands.Any())
  29. return false;
  30. var loadedAliases = service.Commands.SelectMany(x => x.Aliases);
  31. foreach (var alias in DefaultAliases)
  32. {
  33. if (!loadedAliases.Contains(alias.Replace(' ', separatorChar)))
  34. {
  35. return false;
  36. }
  37. }
  38. return true;
  39. }
  40. }
  41. }