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
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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
     };
 }
Beispiel #5
0
 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));
 }