Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions maqs-cucumber/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,15 @@
<platform>OS X 10.11</platform>
<version>54.0</version>
</RemoteSeleniumCapsMaqs>

<WebServiceMaqs>
<!-- Web service root -->
<WebServiceUri>http://magenicautomation.azurewebsites.net</WebServiceUri>

<!-- Time-out in milliseconds -->
<WebServiceTimeout>10000</WebServiceTimeout>
<UseProxy>No</UseProxy>
<ProxyAddress>127.0.0.1:8001</ProxyAddress>
<ProxyPort>8080</ProxyPort>
</WebServiceMaqs>
</configuration>
4 changes: 4 additions & 0 deletions maqs-cucumber/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
<groupId>com.cognizantsoftvision.maqs.selenium</groupId>
<artifactId>maqs-selenium</artifactId>
</dependency>
<dependency>
<groupId>com.cognizantsoftvision.maqs.webservices</groupId>
<artifactId>maqs-webservices</artifactId>
</dependency>
<dependency>
<scope>compile</scope>
<groupId>io.cucumber</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright 2022 (C) Cognizant SoftVision, All rights Reserved
*/

package com.cognizantsoftvision.maqs.cucumber;

import com.cognizantsoftvision.maqs.base.BaseTest;
import com.cognizantsoftvision.maqs.webservices.BaseWebServiceTest;

/**
* The base WebService cucumber object.
*/
public class BaseWebServiceCucumber extends BaseCucumberTestNG {

/**
* Create a test object.
*
* @return A base webservice test object
*/
@Override
public BaseTest createSpecificBaseTest() {
return new BaseWebServiceTest();
}
}



Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright 2022 (C) Cognizant SoftVision, All rights Reserved
*/

package com.cognizantsoftvision.maqs.cucumber.steps;

import com.cognizantsoftvision.maqs.cucumber.ScenarioContext;
import com.cognizantsoftvision.maqs.webservices.BaseWebServiceTest;
import com.cognizantsoftvision.maqs.webservices.WebServiceDriver;
import com.cognizantsoftvision.maqs.webservices.WebServiceTestObject;


/**
* Base WebService cucumber step.
*/
public class BaseWebServiceStep extends BaseGenericStep {

/**
* Get the web driver.
*
* @return The web driver
*/
public WebServiceDriver getDriver() {
return getTestObject().getWebServiceDriver();
}

/**
* Get the webservice test object.
*
* @return Selenium test object
*/
@Override
public WebServiceTestObject getTestObject() {
return (WebServiceTestObject) ScenarioContext.get(
ScenarioContext.MAQS_HOLDER, BaseWebServiceTest.class).getTestObject();
}
}



12 changes: 12 additions & 0 deletions maqs-cucumber/src/test/java/TestRunnerWebService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import com.cognizantsoftvision.maqs.cucumber.BaseWebServiceCucumber;

import io.cucumber.testng.CucumberOptions;


/**
* WebService glue.
*/
@CucumberOptions( glue = {"stepdefs.webservice"}, plugin = {"pretty"}, features = {"src/test/resources/webservice"})
public class TestRunnerWebService extends BaseWebServiceCucumber {

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class BaseCucumberTestNGUnitTest extends BaseGenericTest {
/**
* Verifies the before method properly sets the Scenario Context
*/
@Test(groups = TestCategories.CUCUMBER, singleThreaded = true, priority = 0)
@Test(groups = TestCategories.CUCUMBER, singleThreaded = true)
public void testBeforeMethod() {
DummyBaseCucumberTestNG dummyCucumber = new DummyBaseCucumberTestNG();
String[] dummyArgs = {"Dummy Arg 1", "Dummy Arg 2"};
Expand All @@ -33,7 +33,7 @@ public void testBeforeMethod() {
/**
* Verifies the tear down process correctly cleans up the Scenario Context
*/
@Test(groups = TestCategories.CUCUMBER)
@Test(groups = TestCategories.CUCUMBER, priority = 1)
public void testTearDown() throws Exception {
DummyBaseCucumberTestNG dummyCucumber = new DummyBaseCucumberTestNG();
BaseTest dummyTest = dummyCucumber.createSpecificBaseTest();
Expand All @@ -49,7 +49,7 @@ public void testTearDown() throws Exception {
/**
* Verifies the test name is properly set
*/
@Test(groups = TestCategories.CUCUMBER)
@Test(groups = TestCategories.CUCUMBER, priority = 1)
public void testGetTestName() {
DummyBaseCucumberTestNG dummyCucumber = new DummyBaseCucumberTestNG();
String[] dummyArgs = {"Dummy Arg 1", "Dummy Arg 2"};
Expand All @@ -63,7 +63,7 @@ public void testGetTestName() {
/**
* Verifies the specific base test object is a BaseGeneric Object
*/
@Test(groups = TestCategories.CUCUMBER)
@Test(groups = TestCategories.CUCUMBER, priority = 1)
public void testCreateSpecificBaseTest() {
DummyBaseCucumberTestNG dummyCucumber = new DummyBaseCucumberTestNG();
BaseTest testObject = dummyCucumber.createSpecificBaseTest();
Expand All @@ -73,7 +73,7 @@ public void testCreateSpecificBaseTest() {
/**
* Verifies the scenarios are not null
*/
@Test(groups = TestCategories.CUCUMBER)
@Test(groups = TestCategories.CUCUMBER, priority = 1)
public void testScenarios() {
DummyBaseCucumberTestNG dummyCucumber = new DummyBaseCucumberTestNG();
Assert.assertNotNull(dummyCucumber.scenarios());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.cognizantsoftvision.maqs.cucumber;

import com.cognizantsoftvision.maqs.base.BaseTest;
import com.cognizantsoftvision.maqs.webservices.BaseWebServiceTest;
import com.cognizantsoftvision.maqs.utilities.helper.TestCategories;
import org.testng.Assert;
import org.testng.annotations.Test;

/**
* Unit test class for BaseSeleniumCucumber class.
*/
public class BaseWebServiceCucumberUnitTest {

/**
* Verifies the specific base test object is a BaseSeleniumTest Object
*/
@Test(groups = TestCategories.CUCUMBER)
public void testCreateSpecificBaseTest() {
BaseWebServiceCucumber webserviceCucumber = new BaseWebServiceCucumber();
BaseTest testObject = webserviceCucumber.createSpecificBaseTest();
Assert.assertTrue(testObject instanceof BaseWebServiceTest);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/*
* Copyright 2022 (C) Cognizant SoftVision, All rights Reserved
*/

package com.cognizantsoftvision.maqs.cucumber.datamodels;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

import java.math.BigDecimal;

@JsonPropertyOrder({"Id", "Name", "Category", "Price"})
public class Product {

@JacksonXmlProperty(isAttribute = true)
private final String xmlns = "http://schemas.datacontract.org/2004/07/MainTestService.Models";

@JsonAlias({"Id", "id"})
@JacksonXmlProperty(localName = "Id")
private int id;

@JacksonXmlProperty(localName = "Name")
@JsonAlias({"Name", "name"})
private String name;

@JacksonXmlProperty(localName = "Category")
@JsonAlias({"Category", "category"})
private String category;

@JacksonXmlProperty(localName = "Price")
@JsonAlias({"Price", "price"})
private BigDecimal price;

public Product(int id, String name, String category, BigDecimal price) {
this.id = id;
this.name = name;
this.category = category;
this.price = price;
}

// Used to populate the product class
public Product() {
}

public void setId(int id) {
this.id = id;
}

public int getId() {
return id;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setCategory(String category) {
this.category = category;
}

public String getCategory() {
return category;
}

public BigDecimal getPrice() {
return price;
}

public void setPrice(BigDecimal price) {
this.price = price;
}

public String toString() {
return String.format("%s:%d\n", "Id", this.getId()) + String
.format("%s:%s\n", "Name", this.getName()) + String
.format("%s:%s\n", "Category", this.getCategory()) + String
.format("%s:%s\n", "Price", this.getPrice());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.cognizantsoftvision.maqs.cucumber.steps;

import com.cognizantsoftvision.maqs.cucumber.ScenarioContext;
import com.cognizantsoftvision.maqs.cucumber.unittestpagemodel.DummyBaseWebServiceStep;
import com.cognizantsoftvision.maqs.webservices.BaseWebServiceTest;
import com.cognizantsoftvision.maqs.utilities.helper.TestCategories;
import org.testng.Assert;
import org.testng.annotations.Test;

/**
* Unit test class for BaseSeleniumStep class.
*/
public class BaseWebServiceStepUnitTest extends BaseWebServiceTest {

/**
* Verifies the Driver is not null
*/
@Test(groups = TestCategories.CUCUMBER)
public void testGetDriver() {
DummyBaseWebServiceStep stepClass = new DummyBaseWebServiceStep();
ScenarioContext.put(ScenarioContext.MAQS_HOLDER, this);
Assert.assertNotNull(stepClass.getDriver(), "Checking that WebService Driver is not null through BaseWebServiceStep");
}

/**
* Verifies the Test Object is not null
*/
@Test(groups = TestCategories.CUCUMBER)
public void testGetTestObject() {
DummyBaseWebServiceStep stepClass = new DummyBaseWebServiceStep();
ScenarioContext.put(ScenarioContext.MAQS_HOLDER, this);
Assert.assertNotNull(stepClass.getTestObject(), "Checking that Test Object is not null through BaseWebServiceStep");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.cognizantsoftvision.maqs.cucumber.unittestpagemodel;

import com.cognizantsoftvision.maqs.cucumber.steps.BaseWebServiceStep;

/**
* A Dummy DummyBaseWebServiceStep class for testing
*/
public class DummyBaseWebServiceStep extends BaseWebServiceStep {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package stepdefs.webservice;

import com.cognizantsoftvision.maqs.cucumber.ScenarioContext;
import com.cognizantsoftvision.maqs.cucumber.steps.BaseWebServiceStep;
import com.cognizantsoftvision.maqs.webservices.MediaType;
import com.cognizantsoftvision.maqs.cucumber.datamodels.Product;
import com.cognizantsoftvision.maqs.webservices.WebServiceConfig;
import org.testng.Assert;
import java.io.IOException;

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;

public class ProductSteps extends BaseWebServiceStep {
private static final String baseUrl = WebServiceConfig.getWebServiceUri();

@Given("I Get Product Information for Product ID {int}")
public void i_get_product_information_for_product_id(Integer int1) throws IOException, InterruptedException {
Product product = this.getDriver().get(
baseUrl + "/api/XML_JSON/GetProduct/2", MediaType.APP_XML, true, Product.class);
ScenarioContext.put("product", product);

}
@Then("The Product Name is {string}")
public void the_product_name_is(String pname) {
Product p = (Product) ScenarioContext.get("product");
Assert.assertEquals(p.getName(), pname, "Expected Yo-yo to be returned");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Feature: Sample WebService Tests

Scenario: Get a Product Name
Given I Get Product Information for Product ID 2
Then The Product Name is "Yo-yo"
1 change: 1 addition & 0 deletions maqs-cucumber/testng.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<classes>
<class name="TestRunnerSelenium"/>
<class name="TestRunnerGeneric"/>
<class name="TestRunnerWebService"/>
</classes>
</test>
</suite>
2 changes: 1 addition & 1 deletion maqs-playwright/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<version>${revision}</version>

<properties>
<playwright.version>1.21.0</playwright.version>
<playwright.version>1.29.0</playwright.version>
</properties>

<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
/**
* Page driver factory tests.
*/
@Test(singleThreaded = true)
public class PageDriverFactoryUnitTest {

/**
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@
<maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
<checkstyle.version>8.29</checkstyle.version>
<jdk.version>11</jdk.version>
<chromedriver.version>94.0.4606.41</chromedriver.version>
<chromedriver.version>108.0.5359.71</chromedriver.version>
<geckodriver.version>0.28.0</geckodriver.version>
<edgedriver.version>5.16299</edgedriver.version>
</properties>
Expand Down