TLSharp/TLSharp.Tests/NotificatioClientTests.cs
Ilya Pirozhneko 1dce594e43 - Update layer to 23
- Start implementing get user by userName
2016-02-01 23:39:39 +03:00

129 lines
3.1 KiB
C#

using System;
using System.Configuration;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TLSharp.Core;
using TLSharp.Core.Auth;
using TLSharp.Core.Network;
namespace TLSharp.Tests
{
[TestClass]
public class NotificatioClientTests
{
private string NumberToSendMessage { get; set; }
private string NumberToAuthenticate { get; set; }
[TestInitialize]
public void Init()
{
// Setup your phone numbers in app.config
NumberToAuthenticate = ConfigurationManager.AppSettings["numberToAuthenticate"];
if (string.IsNullOrEmpty(NumberToAuthenticate))
throw new InvalidOperationException("NumberToAuthenticate is null. Specify number in app.config");
NumberToSendMessage = ConfigurationManager.AppSettings["numberToSendMessage"];
if (string.IsNullOrEmpty(NumberToSendMessage))
throw new InvalidOperationException("NumberToSendMessage is null. Specify number in app.config");
}
[TestMethod]
public async Task AuthUser()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
var hash = await client.SendCodeRequest(NumberToAuthenticate);
var code = "86474"; // you can change code in debugger
var user = await client.MakeAuth(NumberToAuthenticate, hash, code);
Assert.IsNotNull(user);
}
[TestMethod]
public async Task CheckPhones()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
var result = await client.IsPhoneRegistered(NumberToAuthenticate);
Assert.IsTrue(result);
}
[TestMethod]
public async Task ImportContact()
{
// User should be already authenticated!
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
Assert.IsTrue(client.IsUserAuthorized());
var res = await client.ImportContact(NumberToSendMessage);
Assert.IsNotNull(res);
}
[TestMethod]
public async Task ImportByUserName()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
Assert.IsTrue(client.IsUserAuthorized());
var res = await client.ImportByUserName(NumberToSendMessage);
Assert.IsNotNull(res);
}
[TestMethod]
public async Task SendMessage()
{
// User should be already authenticated!
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
Assert.IsTrue(client.IsUserAuthorized());
var res = await client.ImportContact(NumberToSendMessage);
Assert.IsNotNull(res);
await client.SendMessage(res.Value, "Test message from TelegramClient");
}
[TestMethod]
public async Task TestConnection()
{
var store = new FakeSessionStore();
var client = new TelegramClient(store, "");
Assert.IsTrue(await client.Connect());
}
[TestMethod]
public async Task AuthenticationWorks()
{
using (var transport = new TcpTransport("91.108.56.165", 443))
{
var authKey = await Authenticator.DoAuthentication(transport);
Assert.IsNotNull(authKey.AuthKey.Data);
}
}
}
}