Skip to content

Commit 8882a81

Browse files
smoghe-bwclaude
andcommitted
Add missing test coverage for WebRTC endpoints and BXML verbs
- Add connectionMetadata field test to CreateWebRtcConnectionRequestTest - Add data field test to ErrorResponseTest - Add tag and devices assertions to unit createEndpointTest and getEndpointTest - Add tag and page assertions to unit listEndpointsTest - Add links, page, and tag assertions to smoke listEndpointsTest - Create standalone EndpointVerbTest for Endpoint BXML verb - Add connectCallbackFallbackUrl, fallbackUsername, fallbackPassword tests to ConnectVerbTest Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ffb8043 commit 8882a81

6 files changed

Lines changed: 136 additions & 1 deletion

File tree

src/test/java/com/bandwidth/sdk/smoke/EndpointsApiTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import com.bandwidth.sdk.model.EndpointDirectionEnum;
1414
import com.bandwidth.sdk.model.EndpointTypeEnum;
1515
import com.bandwidth.sdk.model.EndpointStatusEnum;
16+
import com.bandwidth.sdk.model.Link;
1617
import com.bandwidth.sdk.model.ListEndpointsResponse;
18+
import com.bandwidth.sdk.model.Page;
1719
import org.junit.jupiter.api.MethodOrderer;
1820
import org.junit.jupiter.api.Order;
1921
import org.junit.jupiter.api.Test;
@@ -70,6 +72,8 @@ public void listEndpointsTest() throws ApiException {
7072

7173
assertThat(response.getStatusCode(), is(200));
7274
assertThat(response.getData(), instanceOf(ListEndpointsResponse.class));
75+
assertThat(response.getData().getLinks(), instanceOf(List.class));
76+
assertThat(response.getData().getPage(), instanceOf(Page.class));
7377
assertThat(response.getData().getData(), instanceOf(List.class));
7478
assertThat(response.getData().getErrors(), instanceOf(List.class));
7579

@@ -79,6 +83,7 @@ public void listEndpointsTest() throws ApiException {
7983
assertThat(firstEndpoint.getStatus(), instanceOf(EndpointStatusEnum.class));
8084
assertThat(firstEndpoint.getCreationTimestamp(), instanceOf(OffsetDateTime.class));
8185
assertThat(firstEndpoint.getExpirationTimestamp(), instanceOf(OffsetDateTime.class));
86+
assertThat(firstEndpoint.getTag(), instanceOf(String.class));
8287
}
8388

8489
@Test

src/test/java/com/bandwidth/sdk/unit/api/EndpointsApiTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import com.bandwidth.sdk.model.EndpointStatusEnum;
1414
import com.bandwidth.sdk.model.EndpointTypeEnum;
1515
import com.bandwidth.sdk.model.Endpoints;
16+
import com.bandwidth.sdk.model.Device;
1617
import com.bandwidth.sdk.model.ListEndpointsResponse;
18+
import com.bandwidth.sdk.model.Page;
1719

1820
import org.junit.jupiter.api.BeforeAll;
1921
import org.junit.jupiter.api.Test;
@@ -65,6 +67,8 @@ public void createEndpointTest() throws ApiException {
6567
assertThat(response.getData().getData().getStatus(), instanceOf(EndpointStatusEnum.class));
6668
assertThat(response.getData().getData().getCreationTimestamp(), instanceOf(OffsetDateTime.class));
6769
assertThat(response.getData().getData().getExpirationTimestamp(), instanceOf(OffsetDateTime.class));
70+
assertThat(response.getData().getData().getTag(), instanceOf(String.class));
71+
assertThat(response.getData().getData().getDevices(), instanceOf(List.class));
6872
assertThat(response.getData().getErrors(), instanceOf(List.class));
6973
}
7074

@@ -89,6 +93,8 @@ public void listEndpointsTest() throws ApiException {
8993
assertThat(response.getData().getData().get(0).getStatus(), instanceOf(EndpointStatusEnum.class));
9094
assertThat(response.getData().getData().get(0).getCreationTimestamp(), instanceOf(OffsetDateTime.class));
9195
assertThat(response.getData().getData().get(0).getExpirationTimestamp(), instanceOf(OffsetDateTime.class));
96+
assertThat(response.getData().getData().get(0).getTag(), instanceOf(String.class));
97+
assertThat(response.getData().getPage(), instanceOf(Page.class));
9298
assertThat(response.getData().getErrors(), instanceOf(List.class));
9399
}
94100

@@ -113,6 +119,8 @@ public void getEndpointTest() throws ApiException {
113119
assertThat(response.getData().getData().getStatus(), instanceOf(EndpointStatusEnum.class));
114120
assertThat(response.getData().getData().getCreationTimestamp(), instanceOf(OffsetDateTime.class));
115121
assertThat(response.getData().getData().getExpirationTimestamp(), instanceOf(OffsetDateTime.class));
122+
assertThat(response.getData().getData().getTag(), instanceOf(String.class));
123+
assertThat(response.getData().getData().getDevices(), instanceOf(List.class));
116124
assertThat(response.getData().getErrors(), instanceOf(List.class));
117125
}
118126

src/test/java/com/bandwidth/sdk/unit/models/CreateWebRtcConnectionRequestTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public class CreateWebRtcConnectionRequestTest {
3131
.direction(EndpointDirectionEnum.BIDIRECTIONAL)
3232
.eventCallbackUrl(URI.create("https://example.com/callback"))
3333
.eventFallbackUrl(URI.create("https://example.com/fallback"))
34-
.tag("tag");
34+
.tag("tag")
35+
.connectionMetadata(new Object());
3536

3637
/**
3738
* Model tests for CreateWebRtcConnectionRequest
@@ -80,4 +81,12 @@ public void eventFallbackUrlTest() {
8081
public void tagTest() {
8182
assertThat(model.getTag(), instanceOf(String.class));
8283
}
84+
85+
/**
86+
* Test the property 'connectionMetadata'
87+
*/
88+
@Test
89+
public void connectionMetadataTest() {
90+
assertThat(model.getConnectionMetadata(), instanceOf(Object.class));
91+
}
8392
}

src/test/java/com/bandwidth/sdk/unit/models/ErrorResponseTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import static org.hamcrest.MatcherAssert.assertThat;
2424
import static org.hamcrest.CoreMatchers.instanceOf;
25+
import static org.hamcrest.CoreMatchers.is;
2526

2627
/**
2728
* Model tests for ErrorResponse
@@ -48,6 +49,15 @@ public void linksTest() {
4849
assertThat(model.getLinks(), instanceOf(List.class));
4950
}
5051

52+
/**
53+
* Test the property 'data'
54+
*/
55+
@Test
56+
public void dataTest() {
57+
// data is set to null in the model, so we verify the getter works
58+
assertThat(model.getData() == null, is(true));
59+
}
60+
5161
/**
5262
* Test the property 'errors'
5363
*/

src/test/java/com/bandwidth/sdk/unit/models/bxml/ConnectVerbTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ public class ConnectVerbTest {
4444
.password("pass")
4545
.tag("test")
4646
.build();
47+
Connect connect3 = Connect.builder()
48+
.endpoints(List.of(endpoint))
49+
.connectCallbackUrl(URI.create("https://example.com/webhooks/connect"))
50+
.connectCallbackFallbackUrl(URI.create("https://example.com/webhooks/connect-fallback"))
51+
.fallbackUsername("fallbackUser")
52+
.fallbackPassword("fallbackPass")
53+
.tag("test")
54+
.build();
4755

4856
@Test
4957
public void connectVerbWorks() throws JAXBException {
@@ -54,4 +62,12 @@ public void connectVerbWorks() throws JAXBException {
5462
assertThat(new Bxml().with(connect1).toBxml(jaxbContext), is(expectedConnectBxml));
5563
assertThat(new Bxml().with(connect2).toBxml(jaxbContext), is(expectedConnectWithCredsBxml));
5664
}
65+
66+
@Test
67+
public void connectVerbWithFallbackFieldsWorks() throws JAXBException {
68+
JAXBContext jaxbContext = JAXBContext.newInstance(Bxml.class);
69+
String expectedConnectWithFallbackBxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Bxml><Connect connectCallbackUrl=\"https://example.com/webhooks/connect\" connectCallbackMethod=\"POST\" connectCallbackFallbackUrl=\"https://example.com/webhooks/connect-fallback\" connectCallbackFallbackMethod=\"POST\" fallbackUsername=\"fallbackUser\" fallbackPassword=\"fallbackPass\" tag=\"test\"><Endpoint type=\"webrtc\" tag=\"test\">test-endpoint-id</Endpoint></Connect></Bxml>";
70+
71+
assertThat(new Bxml().with(connect3).toBxml(jaxbContext), is(expectedConnectWithFallbackBxml));
72+
}
5773
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/**
2+
*
3+
* Unit tests for Endpoint Verb class
4+
*
5+
* @throws JAXBException if the test fails
6+
*/
7+
8+
package com.bandwidth.sdk.unit.models.bxml;
9+
10+
import com.bandwidth.sdk.model.bxml.Bxml;
11+
import com.bandwidth.sdk.model.bxml.Connect;
12+
import com.bandwidth.sdk.model.bxml.Endpoint;
13+
14+
import jakarta.xml.bind.JAXBContext;
15+
import jakarta.xml.bind.JAXBException;
16+
17+
import org.junit.jupiter.api.Test;
18+
19+
import static org.hamcrest.MatcherAssert.assertThat;
20+
import static org.hamcrest.Matchers.is;
21+
22+
import java.net.URI;
23+
import java.util.List;
24+
25+
public class EndpointVerbTest {
26+
/**
27+
* Setting up Variables
28+
*/
29+
Endpoint endpointWithAllFields = Endpoint.builder()
30+
.endpointId("test-endpoint-id")
31+
.type("webrtc")
32+
.tag("test-tag")
33+
.build();
34+
35+
Endpoint endpointWithIdOnly = Endpoint.builder()
36+
.endpointId("test-endpoint-id")
37+
.build();
38+
39+
Endpoint endpointWithType = Endpoint.builder()
40+
.endpointId("test-endpoint-id")
41+
.type("webrtc")
42+
.build();
43+
44+
@Test
45+
public void endpointVerbWithAllFieldsWorks() throws JAXBException {
46+
JAXBContext jaxbContext = JAXBContext.newInstance(Bxml.class);
47+
// Endpoint must be nested inside Connect for BXML serialization
48+
Connect connect = Connect.builder()
49+
.endpoints(List.of(endpointWithAllFields))
50+
.connectCallbackUrl(URI.create("https://example.com/webhooks/connect"))
51+
.build();
52+
String expectedBxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Bxml><Connect connectCallbackUrl=\"https://example.com/webhooks/connect\" connectCallbackMethod=\"POST\" connectCallbackFallbackMethod=\"POST\"><Endpoint type=\"webrtc\" tag=\"test-tag\">test-endpoint-id</Endpoint></Connect></Bxml>";
53+
54+
assertThat(new Bxml().with(connect).toBxml(jaxbContext), is(expectedBxml));
55+
}
56+
57+
@Test
58+
public void endpointVerbWithIdOnlyWorks() throws JAXBException {
59+
JAXBContext jaxbContext = JAXBContext.newInstance(Bxml.class);
60+
Connect connect = Connect.builder()
61+
.endpoints(List.of(endpointWithIdOnly))
62+
.connectCallbackUrl(URI.create("https://example.com/webhooks/connect"))
63+
.build();
64+
String expectedBxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Bxml><Connect connectCallbackUrl=\"https://example.com/webhooks/connect\" connectCallbackMethod=\"POST\" connectCallbackFallbackMethod=\"POST\"><Endpoint>test-endpoint-id</Endpoint></Connect></Bxml>";
65+
66+
assertThat(new Bxml().with(connect).toBxml(jaxbContext), is(expectedBxml));
67+
}
68+
69+
@Test
70+
public void endpointVerbWithTypeWorks() throws JAXBException {
71+
JAXBContext jaxbContext = JAXBContext.newInstance(Bxml.class);
72+
Connect connect = Connect.builder()
73+
.endpoints(List.of(endpointWithType))
74+
.connectCallbackUrl(URI.create("https://example.com/webhooks/connect"))
75+
.build();
76+
String expectedBxml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Bxml><Connect connectCallbackUrl=\"https://example.com/webhooks/connect\" connectCallbackMethod=\"POST\" connectCallbackFallbackMethod=\"POST\"><Endpoint type=\"webrtc\">test-endpoint-id</Endpoint></Connect></Bxml>";
77+
78+
assertThat(new Bxml().with(connect).toBxml(jaxbContext), is(expectedBxml));
79+
}
80+
81+
@Test
82+
public void endpointFieldsAccessibleDirectly() {
83+
assertThat(endpointWithAllFields.getEndpointId(), is("test-endpoint-id"));
84+
assertThat(endpointWithAllFields.getType(), is("webrtc"));
85+
assertThat(endpointWithAllFields.getTag(), is("test-tag"));
86+
}
87+
}

0 commit comments

Comments
 (0)