Added implementation of AddChatUser/DeleteChatUser/LeaveChat

This commit is contained in:
steavy29 2016-09-09 19:56:47 +03:00
parent 98f014a49d
commit ccf2008404
4 changed files with 151 additions and 15 deletions

View file

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TLSharp.Core;
@ -274,6 +275,64 @@ namespace TLSharp.Tests
[TestMethod]
public async Task CreateChatRequest()
{
var client = await InitializeClient();
var chatName = Guid.NewGuid().ToString();
var statedMessage = await client.CreateChat(chatName, new List<string> {NumberToSendMessage});
var createdChat = GetChatFromStatedMessage(statedMessage);
Assert.AreEqual(chatName, createdChat.title);
Assert.AreEqual(2, createdChat.participants_count);
}
[TestMethod]
public async Task AddChatUserRequest()
{
var client = await InitializeClient();
var chatName = Guid.NewGuid().ToString();
var statedMessageAfterCreation = await client.CreateChat(chatName, new List<string> { NumberToSendMessage });
var createdChat = GetChatFromStatedMessage(statedMessageAfterCreation);
var addUserId = await client.ImportContactByPhoneNumber("380685004559");
var statedMessageAfterAddUser = await client.AddChatUser(createdChat.id, addUserId.Value);
var modifiedChat = GetChatFromStatedMessage(statedMessageAfterAddUser);
Assert.AreEqual(createdChat.id, modifiedChat.id);
Assert.AreEqual(3, modifiedChat.participants_count);
}
[TestMethod]
public async Task LeaveChatRequest()
{
var client = await InitializeClient();
var chatName = Guid.NewGuid().ToString();
var statedMessageAfterCreation = await client.CreateChat(chatName, new List<string> { NumberToSendMessage });
var createdChat = GetChatFromStatedMessage(statedMessageAfterCreation);
var statedMessageAfterLeave = await client.LeaveChat(createdChat.id);
var modifiedChat = GetChatFromStatedMessage(statedMessageAfterLeave);
Assert.AreEqual(createdChat.id, modifiedChat.id);
Assert.AreEqual(1, modifiedChat.participants_count);
}
private ChatConstructor GetChatFromStatedMessage(Messages_statedMessageConstructor message)
{
var serviceMessage = message.message as MessageServiceConstructor;
var peerChat = serviceMessage.to_id as PeerChatConstructor;
var createdChatId = peerChat.chat_id;
return message.chats.OfType<ChatConstructor>().Single(c => c.id == createdChatId);
}
private async Task<TelegramClient> InitializeClient()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session", apiId, apiHash);
@ -291,11 +350,7 @@ namespace TLSharp.Tests
Assert.IsTrue(client.IsUserAuthorized());
var chatName = Guid.NewGuid().ToString();
var chat = await client.CreateChat(chatName, new List<string> {NumberToSendMessage});
Assert.AreEqual(chatName, chat.title);
Assert.AreEqual(2, chat.participants_count);
return client;
}
}
}