-
Notifications
You must be signed in to change notification settings - Fork 238
Expand file tree
/
Copy pathConnect.cs
More file actions
98 lines (83 loc) · 3.08 KB
/
Connect.cs
File metadata and controls
98 lines (83 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
using System.Net;
using SlackAPI.Tests.Configuration;
using SlackAPI.Tests.Helpers;
using SlackAPI.WebSocketMessages;
using Xunit;
namespace SlackAPI.Tests
{
[Collection("Integration tests")]
public class Connect
{
const string TestText = "Test :D";
private readonly IntegrationFixture fixture;
public Connect(IntegrationFixture fixture)
{
this.fixture = fixture;
}
[Fact]
public void TestConnectAsUser()
{
var client = this.fixture.CreateUserClient();
Assert.True(client.IsConnected, "Invalid, doesn't think it's connected.");
client.CloseSocket();
}
[Fact]
public void TestConnectAsBot()
{
var client = this.fixture.CreateBotClient();
Assert.True(client.IsConnected, "Invalid, doesn't think it's connected.");
client.CloseSocket();
}
[Fact]
public void TestConnectWithWrongProxySettings()
{
var proxySettings = new WebProxy { Address = new Uri("http://127.0.0.1:8080")};
Assert.Throws<InvalidOperationException>(() => this.fixture.CreateUserClient(proxySettings));
Assert.Throws<InvalidOperationException>(() => this.fixture.CreateBotClient(proxySettings));
}
[Fact]
public void TestConnectPostAndDelete()
{
// given
SlackSocketClient client = this.fixture.CreateUserClient();
string channel = this.fixture.Config.TestChannel;
// when
DateTime messageTimestamp = PostMessage(client, channel);
DeletedResponse deletedResponse = DeleteMessage(client, channel, messageTimestamp);
// then
Assert.NotNull(deletedResponse);
Assert.True(deletedResponse.ok);
Assert.Equal(channel, deletedResponse.channel);
Assert.Equal(messageTimestamp, deletedResponse.ts);
}
private static DateTime PostMessage(SlackSocketClient client, string channel)
{
MessageReceived sendMessageResponse = null;
using (var sync = new InSync(nameof(SlackSocketClient.SendMessage)))
{
client.SendMessage(response =>
{
sendMessageResponse = response;
sync.Proceed();
}, channel, TestText);
}
Assert.NotNull(sendMessageResponse);
Assert.Equal(TestText, sendMessageResponse.text);
return sendMessageResponse.ts;
}
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;
}
}
}