Add by userName

This commit is contained in:
Ilya Pirozhneko 2016-02-01 23:58:51 +03:00
parent 1dce594e43
commit c77cfc064d
4 changed files with 31 additions and 5 deletions

View file

@ -7,6 +7,7 @@ namespace TLSharp.Core.Requests
public class ImportByUserName : MTProtoRequest
{
private readonly string _userName;
public int id { get; private set; }
public ImportByUserName(string userName)
{
_userName = userName;
@ -14,14 +15,14 @@ namespace TLSharp.Core.Requests
public override void OnSend(BinaryWriter writer)
{
writer.Write(0xf93ccba3);
writer.Write(0xBF0131C);
Serializers.String.write(writer, _userName);
}
public override void OnResponse(BinaryReader reader)
{
var code = reader.ReadUInt32();
var peer = TL.Parse<Peer>(reader);
id = reader.ReadInt32();
}
public override void OnException(Exception exception)
@ -29,7 +30,7 @@ namespace TLSharp.Core.Requests
throw new NotImplementedException();
}
public override bool Confirmed { get; }
public override bool Confirmed => true;
public override bool Responded { get; }
}
}

View file

@ -216,7 +216,7 @@ namespace TLSharp.Core
await _sender.Send(request);
await _sender.Recieve(request);
return null;
return request.id;
}
public async Task SendMessage(int id, string message)

View file

@ -15,6 +15,8 @@ namespace TLSharp.Tests
private string NumberToAuthenticate { get; set; }
private string UserNameToSendMessage { get; set; }
[TestInitialize]
public void Init()
{
@ -26,6 +28,11 @@ namespace TLSharp.Tests
NumberToSendMessage = ConfigurationManager.AppSettings["numberToSendMessage"];
if (string.IsNullOrEmpty(NumberToSendMessage))
throw new InvalidOperationException("NumberToSendMessage is null. Specify number in app.config");
UserNameToSendMessage = ConfigurationManager.AppSettings["userNameToSendMessage"];
if (string.IsNullOrEmpty(UserNameToSendMessage))
throw new InvalidOperationException("UserNameToSendMessage is null. Specify userName in app.config");
}
[TestMethod]
@ -82,11 +89,28 @@ namespace TLSharp.Tests
Assert.IsTrue(client.IsUserAuthorized());
var res = await client.ImportByUserName(NumberToSendMessage);
var res = await client.ImportByUserName(UserNameToSendMessage);
Assert.IsNotNull(res);
}
[TestMethod]
public async Task ImportByUserNameAndSendMessage()
{
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");
await client.Connect();
Assert.IsTrue(client.IsUserAuthorized());
var res = await client.ImportByUserName(UserNameToSendMessage);
Assert.IsNotNull(res);
await client.SendMessage(res.Value, "Test message from TelegramClient");
}
[TestMethod]
public async Task SendMessage()
{

View file

@ -3,5 +3,6 @@
<appSettings>
<add key="numberToAuthenticate" value="" />
<add key="numberToSendMessage" value=""/>
<add key="userNameToSendMessage" value=""/>
</appSettings>
</configuration>