public void InputNewNameTest()
        {
            var command = Substitute.For <RenameDropletCommand>(_logger, _tg, _sessionRepo, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.SelectedDroplet);

            command.Received().Execute(_message, SessionState.SelectedDroplet);
            _sessionRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new Session()));
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>());
        }
        public void InputInboundRuleTest()
        {
            var command = Substitute.For <AddInboundRuleCommand>(_logger, _tg, _sessionRepo, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.SelectedFirewall);

            command.Received().Execute(_message, SessionState.SelectedFirewall);
            _sessionRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new Session()));
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>(), ParseMode.Markdown);
        }
        public void ConfirmMessageTest()
        {
            var command = Substitute.For <PowerCycleDropletCommand>(_logger, _tg, _sessionRepo, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.SelectedDroplet);

            command.Received().Execute(_message, SessionState.SelectedDroplet);
            _sessionRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new Session()));
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>(), replyMarkup: Arg.Any <ReplyKeyboardMarkup>());
        }
예제 #4
0
        public void GetDropletsTest()
        {
            var command = Substitute.For <GetDropletsCommand>(_logger, _tg, _sessionRepo, _handlerCallbackRepo, _pageFactory, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.MainMenu);

            command.Received().Execute(_message, SessionState.MainMenu);
            var doApi = _digitalOceanClientFactory.Received().GetInstance(Arg.Is <int>(i => i == 100));

            doApi.Droplets.Received().GetAll();
            _pageFactory
            .Received().GetInstance <DropletPage>()
            .Received().GetPage(Arg.Is <int>(i => i == 100), Arg.Any <int>());
            _sessionRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new Session()));
            _handlerCallbackRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new HandlerCallback()));
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>(), ParseMode.Markdown, replyMarkup: Arg.Any <InlineKeyboardMarkup>());
        }
        public void GetAccountTest()
        {
            var command = Substitute.For <GetAccountCommand>(_logger, _tg, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.MainMenu);

            command.Received().Execute(_message, SessionState.MainMenu);
            var doApi = _digitalOceanClientFactory.Received().GetInstance(Arg.Is <int>(i => i == 100));

            doApi.Account.Received().Get();
            doApi.BalanceClient.Received().Get();
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>(), ParseMode.Markdown);
        }
        public void SendAuthUrlTest()
        {
            var command = Substitute.For <StartCommand>(_tg, _userRepo, _sessionRepo, _handlerCallbakRepo, _logger);

            command.Execute(_message, SessionState.Unknown);

            command.Received().Execute(_message, SessionState.Unknown);
            _userRepo.Received().Get(Arg.Is <int>(i => i == 100));
            _userRepo.Received().Create(Arg.Any <DoUser>());
            _sessionRepo.Received().Create(Arg.Any <Session>());
            _handlerCallbakRepo.Received().Create(Arg.Any <HandlerCallback>());
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>(), replyMarkup: Arg.Any <InlineKeyboardMarkup>());
        }
        public void PowerOnDropletTest()
        {
            var command = Substitute.For <PowerOnDropletCommand>(_logger, _tg, _sessionRepo, _digitalOceanClientFactory);

            command.Execute(_message, SessionState.SelectedDroplet);

            command.Received().Execute(_message, SessionState.SelectedDroplet);
            var doApi = _digitalOceanClientFactory.Received().GetInstance(Arg.Is <int>(i => i == 100));

            _sessionRepo.Received().Get(Arg.Is <int>(i => i == 100));
            doApi.DropletActions.Received().PowerOn(Arg.Is <int>(i => i == 1000));
            doApi.DropletActions.Received().GetDropletAction(Arg.Is <int>(i => i == 1000), Arg.Is <int>(i => i == 200));
            _tg.Received().SendTextMessageAsync(Arg.Is <ChatId>(i => i.Identifier == 101), Arg.Any <string>());
            _sessionRepo.Received().Update(Arg.Is <int>(i => i == 100), Arg.Invoke(new Session()));
        }
예제 #8
0
        public async Task StartCommand(HttpClient client, ITelegramBotClient telegramBotClient)
        {
            var chatId = 321;
            var update = new Update
            {
                Message = new Message
                {
                    MessageId = 123,
                    Chat      = new Chat {
                        Id = chatId
                    },
                    Text = "/start",
                    Date = DateTime.UtcNow
                }
            };

            var response = await client.PostAsJsonAsync("/api/Telegram/update/211212", update);

            response.EnsureSuccessStatusCode();

            await telegramBotClient.Received()
            .SendTextMessageAsync(Arg.Is <ChatId>(x => x.Identifier == chatId), "Choose", ParseMode.Markdown, false,
                                  false, 0, Arg.Any <IReplyMarkup>());
        }
 public void Start_Test()
 {
     _target.Start();
     _telegramBotClient.Received().StartReceiving();
 }