public void TestToxFriendRequest()
{
var options = new ToxOptions(true, true);
var tox1 = new Tox(options);
var tox2 = new Tox(options);
var error = ToxErrorFriendAdd.Ok;
string message = "Hey, this is a test friend request.";
bool testFinished = false;
tox1.AddFriend(tox2.Id, message, out error);
if (error != ToxErrorFriendAdd.Ok)
Assert.Fail("Failed to add friend: {0}", error);
tox2.OnFriendRequestReceived += (sender, args) =>
{
if (args.Message != message)
Assert.Fail("Message received in the friend request is not the same as the one that was sent");
tox2.AddFriendNoRequest(args.PublicKey, out error);
if (error != ToxErrorFriendAdd.Ok)
Assert.Fail("Failed to add friend (no request): {0}", error);
if (!tox2.FriendExists(0))
Assert.Fail("Friend doesn't exist according to core");
testFinished = true;
};
while (!testFinished && tox1.GetFriendConnectionStatus(0) == ToxConnectionStatus.None)
{
int time1 = tox1.Iterate();
int time2 = tox2.Iterate();
Thread.Sleep(Math.Min(time1, time2));
}
tox1.Dispose();
tox2.Dispose();
}