Exemple #1
0
        public static async Task BotOnChatMember(ITelegramBotClient botClient, ChatMemberUpdated update)
        {
            Log(false, "ChatMemberUPDATE: " + JsonConvert.SerializeObject(update));

            if (update.OldChatMember != null && update.OldChatMember.Status == ChatMemberStatus.Left ||
                update.NewChatMember != null && update.NewChatMember.Status == ChatMemberStatus.Left)
            {
                await SendShockedGif(update.Chat);
            }
        }
        public async Task Should_Receive_Chat_Member_Updated()
        {
            await _fixture.SendTestInstructionsAsync(
                $"Chat admin should kick @{_classFixture.RegularMemberUserName.Replace("_", @"\_")}."
                );

            Update update = (await _fixture.UpdateReceiver
                             .GetUpdatesAsync(
                                 u => u.ChatMember?.Chat.Id == _fixture.SupergroupChat.Id,
                                 updateTypes: new [] { UpdateType.ChatMember }
                                 ).ConfigureAwait(false)
                             ).Single();

            await _fixture.UpdateReceiver.DiscardNewUpdatesAsync();

            ChatMemberUpdated chatMemberUpdated = update.ChatMember;

            Assert.True(chatMemberUpdated.NewChatMember.Status == ChatMemberStatus.Kicked);
            Assert.Equal(_classFixture.RegularMemberUserId, chatMemberUpdated.NewChatMember.User.Id);
        }