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 2.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Discord.Commands;
  2. using Moq;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using Xunit;
  8. namespace Discord.Net.Commands.Tests
  9. {
  10. public partial class CommandServiceConfigTests
  11. {
  12. [Theory]
  13. [MemberData(nameof(SeparatorNodeTestData), MemberType = typeof(CommandServiceConfigTests))]
  14. public async Task CommandSeparators(CommandServiceConfig config, char separatorChar)
  15. {
  16. var service = new CommandService(config);
  17. await service.AddModuleAsync(typeof(DummyModule)).ConfigureAwait(false);
  18. var contextMock = new Mock<ICommandContext>();
  19. var context = contextMock.Object;
  20. foreach (var _name in DummyModule.CommandNames)
  21. {
  22. var name = _name.Replace(' ', separatorChar);
  23. var result = service.Search(context, name);
  24. Assert.True(result.IsSuccess, result.ErrorReason);
  25. }
  26. }
  27. [Theory]
  28. [MemberData(nameof(CaseSensitivityTestData), MemberType = typeof(CommandServiceConfigTests))]
  29. public async Task CaseSensitivity(bool caseSensitive, bool upperCase)
  30. {
  31. var service = new CommandService(new CommandServiceConfig { CaseSensitiveCommands = caseSensitive });
  32. await service.AddModuleAsync(typeof(DummyModule)).ConfigureAwait(false);
  33. var contextMock = new Mock<ICommandContext>();
  34. var context = contextMock.Object;
  35. foreach (var _name in DummyModule.CommandNames)
  36. {
  37. var name = upperCase ? _name.ToUpper() : _name;
  38. var result = service.Search(context, name);
  39. if (caseSensitive && upperCase)
  40. Assert.False(result.IsSuccess, $"Searching for `{name}` returned successfully");
  41. else
  42. Assert.True(result.IsSuccess, result.ErrorReason);
  43. }
  44. }
  45. }
  46. }