public void TestSlavaRobotamMessageIsProcessed()
        {
            var messageAdapterFactory = new MessageAdapterFactory(_connector.Object);
            var activity = CreateActivity();

            activity.Text = "слава роботам";
            var adapter = messageAdapterFactory.CreateAdapter(activity);

            var conversationMock = new Mock <IConversations>();

            Activity replyActivity = null;

            conversationMock
            .Setup(x => x.ReplyToActivityWithHttpMessagesAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Activity>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>()))
            .Callback(delegate(string conversationId, string activityId, Activity act, Dictionary <string, List <string> > arg4, CancellationToken token)
            {
                replyActivity = act;
                var i         = 0;
            });

            _connector.SetupGet(client => client.Conversations).Returns(conversationMock.Object);
            adapter.Process(activity);

            if (replyActivity.ChannelData != null)
            {
                var channelData = (ChannelData)replyActivity.ChannelData;
                Assert.AreEqual(channelData.method, "sendSticker");
                Assert.AreEqual(channelData.parameters.sticker, "BQADBAADHQADmDVxAh2h6gc7L-sLAg");
            }
            else
            {
                Assert.AreEqual(replyActivity.Text, "Воистину слава!");
            }
        }
Exemplo n.º 2
0
        public void CreateTest()
        {
            var adapterConstructors = new List <IMessageAdapterConstructor>
            {
                new MqSeriesQueueMessageAdapterConstructor(_configuration), new RabbitMqQueueMessageAdapterConstructor(_configuration), new KafkaQueueMessageAdapterConstructor(_configuration)
            };
            var messageAdapterFactory = new MessageAdapterFactory(adapterConstructors);

            Assert.Multiple(() =>
            {
                Assert.That(messageAdapterFactory.Create("ReValue", false), Is.Not.Null);
                Assert.That(messageAdapterFactory.Create("ReValue", false) is MqSeriesQueueMessageAdapter, Is.True);
                Assert.That(messageAdapterFactory.Create("Rabbit", false), Is.Not.Null);
                Assert.That(messageAdapterFactory.Create("Rabbit", false) is RabbitMqQueueMessageAdapter, Is.True);
                Assert.That(messageAdapterFactory.Create("testKafkaQueue", false), Is.Not.Null);
                Assert.That(messageAdapterFactory.Create("testKafkaQueue", false) is KafkaQueueMessageAdapter, Is.True);
                Assert.Throws <MessagingConfigurationException>(() => messageAdapterFactory.Create("SomeOther", false));
                Assert.Throws <MessagingConfigurationException>(() => messageAdapterFactory.Create("T2", false));

                adapterConstructors.Add(new RabbitMqQueueMessageAdapterConstructor(_configuration));
                Assert.Throws <MessagingConfigurationException>(() => messageAdapterFactory.Create("T1", false));

                adapterConstructors.Clear();
                Assert.Throws <MessagingConfigurationException>(() => messageAdapterFactory.Create("T1", false));
            });
        }
        private async Task HandleMessage(Activity activity)
        {
            var connector             = new ConnectorClient(new Uri(activity.ServiceUrl));
            var messageAdapterFactory = new MessageAdapterFactory(connector);

            var messageAdapter = messageAdapterFactory.CreateAdapter(activity);
            await messageAdapter.Process(activity);
        }
        public void TestHuifyMessageAdapterCreateFromActivity()
        {
            var messageAdapterFactory = new MessageAdapterFactory(_connector.Object);
            var activity = new Activity();

            activity.Text = "сорок тысяч обезьян";
            var adapter = messageAdapterFactory.CreateAdapter(activity);

            Assert.IsInstanceOfType(adapter, typeof(HuifyAdapter));
        }
        public void TestMiscMessageAdapterCreateFromActivity()
        {
            var messageAdapterFactory = new MessageAdapterFactory(_connector.Object);
            var activity = new Activity();

            activity.Text = "слава роботам";
            var adapter = messageAdapterFactory.CreateAdapter(activity);

            Assert.IsInstanceOfType(adapter, typeof(MessageAdapter));
        }
        public void TestStatusMessageAdapterCreateFromActivityWithUnhuifyText()
        {
            var messageAdapterFactory = new MessageAdapterFactory(_connector.Object);
            var activity = new Activity();

            activity.Text = "/unhuify";
            var adapter = messageAdapterFactory.CreateAdapter(activity);

            Assert.IsInstanceOfType(adapter, typeof(CommandAdapter));
        }
        public void TestDelayMessageAdapterCreateFromActivity()
        {
            var messageAdapterFactory = new MessageAdapterFactory(_connector.Object);
            var activity = new Activity();

            activity.Text = "/delay";
            var adapter = messageAdapterFactory.CreateAdapter(activity);

            Assert.IsInstanceOfType(adapter, typeof(DelayAdapter));
        }
Exemplo n.º 8
0
        private static async Task BotOnMessageReceived(Message message)
        {
            if (message.Type == MessageType.ChatMembersAdded && message.NewChatMembers.Any())
            {
                var newUser = message.NewChatMembers.FirstOrDefault(x => x.IsBot == false);
                if (newUser == null)
                {
                    return;
                }

                var name  = $"{newUser.FirstName} {newUser.LastName}".TrimEnd();
                var reply = $"[{name}](tg://user?id={newUser.Id}), ты вообще с какого посткода";

                await _bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    replyToMessageId : message.MessageId,
                    text : reply,
                    parseMode : ParseMode.MarkdownV2);

                Console.WriteLine("Processed ChatMembersAdded event");
                return;
            }

            if (message.Type == MessageType.ChatMemberLeft)
            {
                var sticker = new InputOnlineFile(Stickers.DaIHuiSNim);
                await _bot.SendStickerAsync(chatId : message.Chat.Id, sticker : sticker);

                Console.WriteLine("Processed ChatMemberLeft event");
                return;
            }

            if (message.Type == MessageType.Text || message.Type == MessageType.Sticker || (message.Type == MessageType.Document && message.Animation != null) ||
                (message.Type == MessageType.Photo && message.Photo != null))
            {
                var messageAdapterFactory = new MessageAdapterFactory(_bot, _chatSettings, _reactions, _boyans);

                var messageAdapter = messageAdapterFactory.CreateAdapter(message);
                await messageAdapter.Process(message);
            }
        }