Skip to content

Commit be2a5ba

Browse files
authored
Fix bug in deleteSubscription and added unit test cases in sync client (Azure#18549)
* Fix bug in deleteSubscription and added unit test cases in sync client
1 parent f8935b0 commit be2a5ba

File tree

4 files changed

+136
-2
lines changed

4 files changed

+136
-2
lines changed

sdk/servicebus/azure-messaging-servicebus/src/main/java/com/azure/messaging/servicebus/administration/ServiceBusAdministrationClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ public Response<Void> deleteRuleWithResponse(String topicName, String subscripti
407407
}
408408

409409
/**
410-
* Deletes a subscription the matching {@code subscriptionName}.
410+
* Deletes a subscription matching the {@code subscriptionName} in topic {@code topicName}.
411411
*
412412
* @param topicName Name of topic associated with subscription to delete.
413413
* @param subscriptionName Name of subscription to delete.
@@ -422,7 +422,7 @@ public Response<Void> deleteRuleWithResponse(String topicName, String subscripti
422422
*/
423423
@ServiceMethod(returns = ReturnType.SINGLE)
424424
public void deleteSubscription(String topicName, String subscriptionName) {
425-
asyncClient.deleteSubscription(topicName, subscriptionName);
425+
asyncClient.deleteSubscription(topicName, subscriptionName).block();
426426
}
427427

428428
/**

sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/administration/ServiceBusAdministrationAsyncClientIntegrationTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,26 @@ void deleteQueue(HttpClient httpClient) {
413413
.verifyComplete();
414414
}
415415

416+
@ParameterizedTest
417+
@MethodSource("createHttpClients")
418+
void deleteRule(HttpClient httpClient) {
419+
// Arrange
420+
final ServiceBusAdministrationAsyncClient client = createClient(httpClient);
421+
final String ruleName = testResourceNamer.randomName("rule-", 11);
422+
final String topicName = interceptorManager.isPlaybackMode()
423+
? "topic-13"
424+
: getEntityName(getTopicBaseName(), 13);
425+
final String subscriptionName = interceptorManager.isPlaybackMode()
426+
? "subscription"
427+
: getSubscriptionBaseName();
428+
429+
client.createRule(topicName, subscriptionName, ruleName).block(TIMEOUT);
430+
431+
// Act & Assert
432+
StepVerifier.create(client.deleteRule(topicName, subscriptionName, ruleName))
433+
.verifyComplete();
434+
}
435+
416436
@ParameterizedTest
417437
@MethodSource("createHttpClients")
418438
void deleteSubscription(HttpClient httpClient) {

sdk/servicebus/azure-messaging-servicebus/src/test/java/com/azure/messaging/servicebus/administration/ServiceBusAdministrationClientTest.java

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ class ServiceBusAdministrationClientTest {
5353

5454
private final Context context = new Context("foo", "bar").addData("baz", "boo");
5555
private final String queueName = "some-queue";
56+
private final String subscriptionName = "subscriptionName";
57+
private final String topicName = "topicName";
58+
private final String ruleName = "ruleName";
5659
private ServiceBusAdministrationClient client;
5760

5861
@BeforeEach
@@ -131,6 +134,78 @@ void deleteQueueWithResponse() {
131134
assertEquals(voidResponse, actual);
132135
}
133136

137+
@Test
138+
void deleteRule() {
139+
// Arrange
140+
when(asyncClient.deleteRule(topicName, subscriptionName, ruleName)).thenReturn(Mono.empty());
141+
142+
// Act
143+
client.deleteRule(topicName, subscriptionName, ruleName);
144+
145+
// Assert
146+
verify(asyncClient).deleteRule(topicName, subscriptionName, ruleName);
147+
}
148+
149+
@Test
150+
void deleteRuleWithResponse() {
151+
// Arrange
152+
when(asyncClient.deleteRuleWithResponse(topicName, subscriptionName, ruleName, context)).thenReturn(Mono.just(voidResponse));
153+
154+
// Act
155+
final Response<Void> actual = client.deleteRuleWithResponse(topicName, subscriptionName, ruleName, context);
156+
157+
// Assert
158+
assertEquals(voidResponse, actual);
159+
}
160+
161+
@Test
162+
void deleteSubscription() {
163+
// Arrange
164+
when(asyncClient.deleteSubscription(topicName, subscriptionName)).thenReturn(Mono.empty());
165+
166+
// Act
167+
client.deleteSubscription(topicName, subscriptionName);
168+
169+
// Assert
170+
verify(asyncClient).deleteSubscription(topicName, subscriptionName);
171+
}
172+
173+
@Test
174+
void deleteSubscriptionWithResponse() {
175+
// Arrange
176+
when(asyncClient.deleteSubscriptionWithResponse(topicName, subscriptionName, context)).thenReturn(Mono.just(voidResponse));
177+
178+
// Act
179+
final Response<Void> actual = client.deleteSubscriptionWithResponse(topicName, subscriptionName, context);
180+
181+
// Assert
182+
assertEquals(voidResponse, actual);
183+
}
184+
185+
@Test
186+
void deleteTopic() {
187+
// Arrange
188+
when(asyncClient.deleteTopic(topicName)).thenReturn(Mono.empty());
189+
190+
// Act
191+
client.deleteTopic(topicName);
192+
193+
// Assert
194+
verify(asyncClient).deleteTopic(topicName);
195+
}
196+
197+
@Test
198+
void deleteTopicWithResponse() {
199+
// Arrange
200+
when(asyncClient.deleteTopicWithResponse(topicName, context)).thenReturn(Mono.just(voidResponse));
201+
202+
// Act
203+
final Response<Void> actual = client.deleteTopicWithResponse(topicName, context);
204+
205+
// Assert
206+
assertEquals(voidResponse, actual);
207+
}
208+
134209
@Test
135210
void getQueue() {
136211
// Arrange
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"networkCallRecords" : [ {
3+
"Method" : "PUT",
4+
"Uri" : "https://REDACTED.servicebus.windows.net/topic-13/subscriptions/subscription/rules/rule-33485?api-version=2017-04",
5+
"Headers" : {
6+
"User-Agent" : "azsdk-java-azure-messaging-servicebus/7.1.0-beta.1 (11.0.6; Windows 10; 10.0)",
7+
"Content-Type" : "application/atom+xml"
8+
},
9+
"Response" : {
10+
"Transfer-Encoding" : "chunked",
11+
"Strict-Transport-Security" : "max-age=31536000",
12+
"Server" : "Microsoft-HTTPAPI/2.0",
13+
"ETag" : "637327008261730000",
14+
"retry-after" : "0",
15+
"StatusCode" : "201",
16+
"Body" : "<entry xmlns=\"http://www.w3.org/2005/Atom\"><id>https://sb-java-hemanttestsb1.servicebus.windows.net/topic-13/subscriptions/subscription/rules/rule-33485?api-version=2017-04</id><title type=\"text\">rule-33485</title><published>2021-01-12T22:37:07Z</published><updated>2021-01-12T22:37:07Z</updated><link rel=\"self\" href=\"https://sb-java-hemanttestsb1.servicebus.windows.net/topic-13/subscriptions/subscription/rules/rule-33485?api-version=2017-04\"/><content type=\"application/xml\"><RuleDescription xmlns=\"http://schemas.microsoft.com/netservices/2010/10/servicebus/connect\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><Filter i:type=\"TrueFilter\"><SqlExpression>1=1</SqlExpression><CompatibilityLevel>20</CompatibilityLevel></Filter><Action i:type=\"EmptyRuleAction\"/><CreatedAt>2021-01-12T22:37:07.025103Z</CreatedAt><Name>rule-33485</Name></RuleDescription></content></entry>",
17+
"Date" : "Tue, 12 Jan 2021 22:37:06 GMT",
18+
"Content-Type" : "application/atom+xml;type=entry;charset=utf-8"
19+
},
20+
"Exception" : null
21+
}, {
22+
"Method" : "DELETE",
23+
"Uri" : "https://REDACTED.servicebus.windows.net/topic-13/subscriptions/subscription/rules/rule-33485?api-version=2017-04",
24+
"Headers" : {
25+
"User-Agent" : "azsdk-java-azure-messaging-servicebus/7.1.0-beta.1 (11.0.6; Windows 10; 10.0)"
26+
},
27+
"Response" : {
28+
"Strict-Transport-Security" : "max-age=31536000",
29+
"Server" : "Microsoft-HTTPAPI/2.0",
30+
"ETag" : "637327008261730000",
31+
"retry-after" : "0",
32+
"Content-Length" : "0",
33+
"StatusCode" : "200",
34+
"Date" : "Tue, 12 Jan 2021 22:37:06 GMT"
35+
},
36+
"Exception" : null
37+
} ],
38+
"variables" : [ "rule-33485" ]
39+
}

0 commit comments

Comments
 (0)