Untitled
unknown
plain_text
9 months ago
7.5 kB
9
Indexable
Feature: IPVS Channels API
API tests for IPVS channels service
Scenario: Channels v4 API returns expected data structure
When I request IPVS channels v4 data with valid headers
Then the response should contain expected channel data structure
package stepdefs.ipvs;
import sth.ipvs.IPVSBaseTest;
import io.cucumber.java.en.*;
import sth.ipvs.rest.IPVSResponse;
import sth.json.JSON;
import sth.template.rest.TemplateResponse;
public class ChannelsApiChecks extends IPVSBaseTest {
private IPVSResponse response;
@When("I request IPVS channels v4 data with valid headers")
public void requestIPVSChannelsV4Data() {
IPVSResponse tempResponse = api().apiSmarttvChannelsV4()
.header("x-accountId", "LNK.8347:8347100040106596")
.header("x-mso", "TWC")
.header("x-pi-forwarded-for", "1.2.3.4")
.get();
response = new IPVSResponse(tempResponse.request(), tempResponse.response());
assertTrue(response.isSuccess(),
api().getRequestUri() + " Call is failing with " + response.status());
}
@Then("the response should contain expected channel data structure")
public void verifyChannelsResponseStructure() {
assertFalse(response.responseString().isEmpty(), "Response does not contain content");
JSON json = response.json();
if (json.isArray()) {
assertTrue(json.size() > 0, "Response array is empty");
JSON firstItem = json.get(0);
assertTrue(firstItem.hasField("name"), "Channel object missing 'name' field");
if (firstItem.hasField("logoUrl")) {
assertNotNull(firstItem.get("logoUrl"), "logoUrl field is null");
}
if (firstItem.hasField("ncsNetworkId")) {
}
if (firstItem.hasField("services")) {
JSON services = firstItem.get("services");
if (services.hasField("linear")) {
Object linearObj = services.get("linear");
if (linearObj instanceof JSON) {
JSON linearJSON = (JSON) linearObj;
if (linearJSON.isArray() && linearJSON.size() > 0) {
JSON firstLinear = linearJSON.get(0);
assertTrue(firstLinear.hasField("callSign"), "Linear service missing 'callSign' field");
assertTrue(firstLinear.hasField("serviceName"), "Linear service missing 'serviceName' field");
assertTrue(firstLinear.hasField("ncsServiceId"), "Linear service missing 'ncsServiceId' field");
if (firstLinear.hasField("tmsGuideId")) {
// Verify it exists
}
if (firstLinear.hasField("channelNumbers")) {
// Verify it exists and is an array
Object channelNumbers = firstLinear.get("channelNumbers");
if (channelNumbers instanceof JSON) {
assertTrue(((JSON) channelNumbers).isArray(), "channelNumbers is not an array");
}
}
}
}
}
if (services.hasField("vod")) {
Object vodObj = services.get("vod");
if (vodObj instanceof JSON) {
JSON vodJSON = (JSON) vodObj;
if (vodJSON.isArray() && vodJSON.size() > 0) {
JSON firstVod = vodJSON.get(0);
assertTrue(firstVod.hasField("serviceName"), "VOD service missing 'serviceName' field");
assertTrue(firstVod.hasField("entitled"), "VOD service missing 'entitled' field");
if (firstVod.hasField("ncsServiceId")) {
}
if (firstVod.hasField("productProviders")) {
Object providers = firstVod.get("productProviders");
if (providers instanceof JSON) {
assertTrue(((JSON) providers).isArray(), "productProviders is not an array");
}
}
}
}
}
}
}
else {
assertTrue(json.hasField("name"), "Response missing 'name' field");
if (json.hasField("logoUrl")) {
assertNotNull(json.get("logoUrl"), "logoUrl field is null");
}
if (json.hasField("ncsNetworkId")) {
}
if (json.hasField("services")) {
JSON services = json.get("services");
if (services.hasField("linear")) {
Object linearObj = services.get("linear");
if (linearObj instanceof JSON) {
JSON linearJSON = (JSON) linearObj;
if (linearJSON.isArray() && linearJSON.size() > 0) {
JSON firstLinear = linearJSON.get(0);
assertTrue(firstLinear.hasField("callSign"), "Linear service missing 'callSign' field");
assertTrue(firstLinear.hasField("serviceName"), "Linear service missing 'serviceName' field");
assertTrue(firstLinear.hasField("ncsServiceId"), "Linear service missing 'ncsServiceId' field");
if (firstLinear.hasField("tmsGuideId")) {
}
if (firstLinear.hasField("channelNumbers")) {
Object channelNumbers = firstLinear.get("channelNumbers");
if (channelNumbers instanceof JSON) {
assertTrue(((JSON) channelNumbers).isArray(), "channelNumbers is not an array");
}
}
}
}
}
if (services.hasField("vod")) {
Object vodObj = services.get("vod");
if (vodObj instanceof JSON) {
JSON vodJSON = (JSON) vodObj;
if (vodJSON.isArray() && vodJSON.size() > 0) {
JSON firstVod = vodJSON.get(0);
assertTrue(firstVod.hasField("serviceName"), "VOD service missing 'serviceName' field");
assertTrue(firstVod.hasField("entitled"), "VOD service missing 'entitled' field");
if (firstVod.hasField("ncsServiceId")) {
}
if (firstVod.hasField("productProviders")) {
Object providers = firstVod.get("productProviders");
if (providers instanceof JSON) {
assertTrue(((JSON) providers).isArray(), "productProviders is not an array");
}
}
}
}
}
}
}
}
@Override
public void verifyTestData() {}
}
Editor is loading...
Leave a Comment