public async Task ParameterIsNotNumber_Should_ReplyMessage(string parameter) { // Arrange var chatConfigurationServiceMock = new Mock <IChatConfigurationService>(); var telegramBotClientMock = new Mock <ITelegramBotClientWrapper>(); var command = new LanguageCommand(chatConfigurationServiceMock.Object, telegramBotClientMock.Object); const string replyMessage = "Invalid parameter"; var chatConfig = new ChatConfiguration { SelectedLanguage = SupportedLanguages.Auto }; var message = new Message { Text = $"{TelegramBotCommands.Language} {parameter}", From = new User { Id = 2 }, Chat = new Chat { Id = 1, Type = ChatType.Group } }; telegramBotClientMock.Setup(v => v.GetChatAdministratorsAsync(message.Chat.Id, default)) .ReturnsAsync(new[] { new ChatMemberMember { User = new() { Id = message.From.Id } } });
public async Task ParameterNotReceived_Should_ReplyMessage() { // Arrange var channelConfigurationServiceMock = new Mock <IDiscordChannelConfigService>(); var command = new LanguageCommand(channelConfigurationServiceMock.Object); const string replyMessage = "Parameter not received"; var chatConfig = new DiscordChannelConfig { SelectedLanguage = SupportedLanguages.Auto }; var channelMock = new Mock <IMessageChannel>(); var user = new Mock <IGuildUser>(); user.Setup(v => v.GuildPermissions).Returns(GuildPermissions.All); var message = new Mock <IMessage>(); message.Setup(v => v.Content).Returns(DiscordBotCommands.Language); message.Setup(v => v.Author).Returns(user.Object); message.Setup(v => v.Channel).Returns(channelMock.Object); channelConfigurationServiceMock.Setup(v => v.GetConfigurationByChannelId(message.Object.Channel.Id)) .ReturnsAsync(chatConfig); // Act await command.Handle(message.Object); // Assert // Verify SendMessageAsync was called with the reply message "Parameter not received" channelMock.Verify(v => v.SendMessageAsync(null, false, It.Is <Embed>(e => e.Description.Contains(replyMessage)), null, null, null, null, null, null, MessageFlags.None)); Assert.Equal(SupportedLanguages.Auto, chatConfig.SelectedLanguage); // Make sure SelectedLanguage is still Auto }
internal static AstCommand ToAstCommand(this LanguageCommand command) { var s1 = command as CommandBlock; if (ReferenceEquals(s1, null) == false) { return(new AstCommandBlock(s1)); } var s2 = command as CommandDeclareVariable; if (ReferenceEquals(s2, null) == false) { return(new AstCommandDeclare(s2)); } var s3 = command as CommandAssign; if (ReferenceEquals(s3, null) == false) { return(new AstCommandLet(s3)); } return(null); }
public ToolsCommand(OptionsCommand optionsCommand, LanguageCommand languageCommand, FullScreenCommand fullScreenCommand, BenchmarkCommand benchmarkCommand, LogsCommand logsCommand) : base(MenuStrings.toolsToolStripMenuItem_Text) { ChildrenCommands = new List <IToolbarCommand> { optionsCommand, languageCommand, fullScreenCommand, null, benchmarkCommand, null, logsCommand }; }
private static int Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Logger.Initialize(); return(Parser.Default.ParseArguments <GenerateCommand, ParseCommand, CleanCommand, LanguageCommand>(args) .MapResult( (GenerateCommand opts) => GenerateCommand.Handle(opts), (ParseCommand opts) => ParseCommand.Handle(opts), (CleanCommand opts) => CleanCommand.Handle(opts), (LanguageCommand opts) => LanguageCommand.Handle(opts), (DocumentationCommand opts) => DocumentationCommand.Handle(opts), errs => 1)); }