private static DeletedResponse DeleteMessage(SlackSocketClient client, string channel, DateTime messageTimestamp) { DeletedResponse deletedResponse = null; using (var sync = new InSync(nameof(SlackClient.DeleteMessage))) { client.DeleteMessage(response => { deletedResponse = response; sync.Proceed(); }, channel, messageTimestamp); } return(deletedResponse); }
private static DeletedResponse DeleteMessage(SlackSocketClient client, string channel, DateTime messageTimestamp) { DeletedResponse deletedResponse = null; var waiter = new EventWaitHandle(false, EventResetMode.ManualReset); client.DeleteMessage(response => { deletedResponse = response; waiter.Set(); }, channel, messageTimestamp); Policy .Handle <AssertFailedException>() .WaitAndRetry(15, x => TimeSpan.FromSeconds(0.2), (exception, span) => Console.WriteLine("Retrying in {0} seconds", span.TotalSeconds)) .Execute(() => { Assert.IsTrue(waiter.WaitOne(), "Still waiting for things to happen..."); }); return(deletedResponse); }
private static DeletedResponse DeleteMessage(SlackSocketClient client, string channel, DateTime messageTimestamp) { DeletedResponse deletedResponse = null; var waiter = new EventWaitHandle(false, EventResetMode.ManualReset); client.DeleteMessage(response => { deletedResponse = response; waiter.Set(); }, channel, messageTimestamp); Policy .Handle<AssertFailedException>() .WaitAndRetry(15, x => TimeSpan.FromSeconds(0.2), (exception, span) => Console.WriteLine("Retrying in {0} seconds", span.TotalSeconds)) .Execute(() => { Assert.IsTrue(waiter.WaitOne(), "Still waiting for things to happen..."); }); return deletedResponse; }
public void TestConnectPostAndDelete() { EventWaitHandle wait = new EventWaitHandle(false, EventResetMode.ManualReset); SlackSocketClient client = new SlackSocketClient(token); client.Connect((o) => { Debug.WriteLine("RTM Start"); }, () => { Debug.WriteLine("Connected"); wait.Set(); }); Assert.IsTrue(wait.WaitOne(10000), "Didn't return within a reasonable time."); Thread.Sleep(500); Assert.IsTrue(client.IsConnected, "Invalid, doesn't think it's connected."); wait = new EventWaitHandle(false, EventResetMode.ManualReset); DateTime ts = DateTime.MinValue; SlackAPI.WebSocketMessages.MessageReceived a = null; client.SendMessage((resp) => { a = resp; wait.Set(); }, testChannel, testText); Assert.IsTrue(wait.WaitOne(1000), "Took too long for Slack to acknowledge message."); ts = a.ts; Assert.AreEqual(a.text, testText, "Got invalid returned text, something's not right here..."); DeletedResponse r = null; wait = new EventWaitHandle(false, EventResetMode.ManualReset); client.DeleteMessage((resp) => { r = resp; wait.Set(); }, testChannel, ts); Assert.IsTrue(wait.WaitOne(1000), "Took too long for Slack to acknowledge delete."); Assert.IsTrue(r.ok, "Message not deleted!"); Assert.AreEqual(r.channel, testChannel, "Got invalid channel? Something's not right here..."); Assert.AreEqual(r.ts, ts, "Got invalid time stamp? Something's not right here..."); }