Skip to content

Commit 0ce9a2f

Browse files
committed
More test scenarios for wider coverage to leave the camping ground cleaner than it was before
1 parent 5949e1a commit 0ce9a2f

4 files changed

+209
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[
2+
{
3+
"Id": "vhost1:queue1",
4+
"Name": "queue1",
5+
"VHost": "vhost1",
6+
"AckedMessages": 1,
7+
"EndpointIndicators": []
8+
},
9+
{
10+
"Id": "vhost2:queue2",
11+
"Name": "queue2",
12+
"VHost": "vhost2",
13+
"AckedMessages": 2,
14+
"EndpointIndicators": []
15+
},
16+
{
17+
"Id": "vhost1:queue3",
18+
"Name": "queue3",
19+
"VHost": "vhost1",
20+
"AckedMessages": null,
21+
"EndpointIndicators": []
22+
}
23+
]
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[
2+
{
3+
"Id": "vhost1:queue1",
4+
"Name": "queue1",
5+
"VHost": "vhost1",
6+
"AckedMessages": 1,
7+
"EndpointIndicators": []
8+
},
9+
{
10+
"Id": "vhost2:queue2",
11+
"Name": "queue2",
12+
"VHost": "vhost2",
13+
"AckedMessages": 2,
14+
"EndpointIndicators": []
15+
},
16+
{
17+
"Id": "vhost1:queue3",
18+
"Name": "queue3",
19+
"VHost": "vhost1",
20+
"AckedMessages": null,
21+
"EndpointIndicators": []
22+
}
23+
]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[
2+
{
3+
"Id": "vhost1:queue1",
4+
"Name": "queue1",
5+
"VHost": "vhost1",
6+
"AckedMessages": 1,
7+
"EndpointIndicators": []
8+
},
9+
{
10+
"Id": "vhost2:queue2",
11+
"Name": "queue2",
12+
"VHost": "vhost2",
13+
"AckedMessages": 2,
14+
"EndpointIndicators": []
15+
}
16+
]

src/Tests/RabbitMQ/RabbitMQManagementClientTests.cs

Lines changed: 147 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ namespace Particular.ThroughputQuery.RabbitMQ.Tests
44
using System.Net.Http;
55
using System.Threading;
66
using System.Threading.Tasks;
7+
using Approvals;
78
using NUnit.Framework;
89
using RabbitMQ;
910

@@ -71,7 +72,152 @@ public void Should_handle_duplicated_json_data()
7172
Assert.DoesNotThrowAsync(async () => await client.GetQueueDetails());
7273
}
7374

74-
class FakeHttpHandler : HttpClientHandler
75+
[Test]
76+
public async Task Should_fetch_queue_details()
77+
{
78+
SendCallback = _ =>
79+
{
80+
var response = new HttpResponseMessage
81+
{
82+
Content = new StringContent("""
83+
{
84+
"items": [
85+
{
86+
"name": "queue1",
87+
"vhost": "vhost1",
88+
"memory": 1024,
89+
"message_stats": {
90+
"ack": 1
91+
}
92+
},
93+
{
94+
"name": "queue2",
95+
"vhost": "vhost2",
96+
"message_stats": {
97+
"ack": 2
98+
}
99+
},
100+
{
101+
"name": "queue3",
102+
"vhost": "vhost1"
103+
}
104+
],
105+
"page": 1,
106+
"page_count": 1,
107+
"page_size": 500,
108+
"total_count": 2
109+
}
110+
""")
111+
};
112+
return response;
113+
};
114+
115+
Approver.Verify(await client.GetQueueDetails());
116+
}
117+
118+
[Test]
119+
public async Task Should_fetch_queue_details_in_old_format()
120+
{
121+
SendCallback = _ =>
122+
{
123+
var response = new HttpResponseMessage
124+
{
125+
Content = new StringContent("""
126+
[
127+
{
128+
"name": "queue1",
129+
"vhost": "vhost1",
130+
"memory": 1024,
131+
"message_stats": {
132+
"ack": 1
133+
}
134+
},
135+
{
136+
"name": "queue2",
137+
"vhost": "vhost2",
138+
"message_stats": {
139+
"ack": 2
140+
}
141+
},
142+
{
143+
"name": "queue3",
144+
"vhost": "vhost1"
145+
}
146+
]
147+
""")
148+
};
149+
return response;
150+
};
151+
152+
Approver.Verify(await client.GetQueueDetails());
153+
}
154+
155+
[Test]
156+
public async Task Should_fetch_queue_details_with_paging()
157+
{
158+
SendCallback = request =>
159+
{
160+
HttpResponseMessage response = null;
161+
162+
if (request.RequestUri.ToString().Contains("page=1"))
163+
{
164+
response = new HttpResponseMessage
165+
{
166+
Content = new StringContent("""
167+
{
168+
"items": [
169+
{
170+
"name": "queue1",
171+
"vhost": "vhost1",
172+
"memory": 1024,
173+
"message_stats": {
174+
"ack": 1
175+
}
176+
}
177+
],
178+
"page": 1,
179+
"page_count": 2,
180+
"page_size": 500,
181+
"total_count": 2
182+
}
183+
""")
184+
};
185+
}
186+
else if (request.RequestUri.ToString().Contains("page=2"))
187+
{
188+
response = new HttpResponseMessage
189+
{
190+
Content = new StringContent("""
191+
{
192+
"items": [
193+
{
194+
"name": "queue2",
195+
"vhost": "vhost2",
196+
"message_stats": {
197+
"ack": 2
198+
}
199+
}
200+
],
201+
"page": 2,
202+
"page_count": 2,
203+
"page_size": 500,
204+
"total_count": 2
205+
}
206+
""")
207+
};
208+
}
209+
else
210+
{
211+
throw new Exception();
212+
}
213+
214+
return response;
215+
};
216+
217+
Approver.Verify(await client.GetQueueDetails());
218+
}
219+
220+
sealed class FakeHttpHandler : HttpClientHandler
75221
{
76222
public Func<HttpRequestMessage, HttpResponseMessage> SendCallback { get; set; }
77223

0 commit comments

Comments
 (0)