Skip to content

Commit 2184a79

Browse files
committed
Version 2022.12.29: Selenium module fix starting default driver on first test, API module add support for custom config
1 parent 7cc3d81 commit 2184a79

File tree

15 files changed

+72
-82
lines changed

15 files changed

+72
-82
lines changed

mrchecker-framework-modules/mrchecker-cli-module/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<parent>
77
<artifactId>mrchecker-test-framework</artifactId>
88
<groupId>com.capgemini.mrchecker</groupId>
9-
<version>2022.12.28</version>
9+
<version>2022.12.29</version>
1010
</parent>
1111

1212
<artifactId>mrchecker-cli-module</artifactId>
13-
<version>2022.12.28</version>
13+
<version>2022.12.29</version>
1414
<packaging>jar</packaging>
1515
<name>MrChecker - CLI - Module</name>
1616
<description>MrChecker CLI Module supports:
@@ -60,7 +60,7 @@
6060
<dependency>
6161
<groupId>${project.groupId}</groupId>
6262
<artifactId>mrchecker-core-module</artifactId>
63-
<version>2022.12.28</version>
63+
<version>2022.12.29</version>
6464
</dependency>
6565
</dependencies>
6666

mrchecker-framework-modules/mrchecker-core-module/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<artifactId>mrchecker-test-framework</artifactId>
99
<groupId>com.capgemini.mrchecker</groupId>
10-
<version>2022.12.28</version>
10+
<version>2022.12.29</version>
1111
</parent>
1212

1313
<artifactId>mrchecker-core-module</artifactId>
14-
<version>2022.12.28</version>
14+
<version>2022.12.29</version>
1515
<packaging>jar</packaging>
1616
<name>MrChecker - Test core - Module</name>
1717
<description>MrChecker Test Framework Core is responsible for:

mrchecker-framework-modules/mrchecker-database-module/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<parent>
77
<artifactId>mrchecker-test-framework</artifactId>
88
<groupId>com.capgemini.mrchecker</groupId>
9-
<version>2022.12.28</version>
9+
<version>2022.12.29</version>
1010
</parent>
1111

1212
<artifactId>mrchecker-database-module</artifactId>
13-
<version>2022.12.28</version>
13+
<version>2022.12.29</version>
1414
<packaging>jar</packaging>
1515
<name>MrChecker - Database - Module</name>
1616
<description>MrChecker Database Module:
@@ -80,7 +80,7 @@
8080
<dependency>
8181
<groupId>${project.groupId}</groupId>
8282
<artifactId>mrchecker-core-module</artifactId>
83-
<version>2022.12.28</version>
83+
<version>2022.12.29</version>
8484
</dependency>
8585

8686
<!-- JPA dependencies -->

mrchecker-framework-modules/mrchecker-mobile-module/pom.xml

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<artifactId>mrchecker-test-framework</artifactId>
99
<groupId>com.capgemini.mrchecker</groupId>
10-
<version>2022.12.28</version>
10+
<version>2022.12.29</version>
1111
</parent>
1212

1313
<artifactId>mrchecker-mobile-module</artifactId>
14-
<version>2022.12.28</version>
14+
<version>2022.12.29</version>
1515
<packaging>jar</packaging>
1616
<name>MrChecker - Mobile - Module</name>
1717
<description>MrChecker Test Framework name supports:
@@ -52,12 +52,12 @@
5252
<dependency>
5353
<groupId>${project.groupId}</groupId>
5454
<artifactId>mrchecker-core-module</artifactId>
55-
<version>2022.12.28</version>
55+
<version>2022.12.29</version>
5656
</dependency>
5757
<dependency>
5858
<groupId>${project.groupId}</groupId>
5959
<artifactId>mrchecker-selenium-module</artifactId>
60-
<version>2022.12.28</version>
60+
<version>2022.12.29</version>
6161
</dependency>
6262

6363
<!--This dependency is necessary for Appium plugin. -->

mrchecker-framework-modules/mrchecker-security-module/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<artifactId>mrchecker-test-framework</artifactId>
99
<groupId>com.capgemini.mrchecker</groupId>
10-
<version>2022.12.28</version>
10+
<version>2022.12.29</version>
1111
</parent>
1212

1313
<artifactId>mrchecker-security-module</artifactId>
14-
<version>2022.12.28</version>
14+
<version>2022.12.29</version>
1515
<packaging>jar</packaging>
1616
<name>MrChecker - Security - Module</name>
1717
<description>MrChecker Test Framework Security supports:
@@ -63,7 +63,7 @@
6363
<dependency>
6464
<groupId>${project.groupId}</groupId>
6565
<artifactId>mrchecker-core-module</artifactId>
66-
<version>2022.12.28</version>
66+
<version>2022.12.29</version>
6767
</dependency>
6868

6969
<!-- Needed to perform all API calls -->

mrchecker-framework-modules/mrchecker-selenium-module/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<artifactId>mrchecker-test-framework</artifactId>
99
<groupId>com.capgemini.mrchecker</groupId>
10-
<version>2022.12.28</version>
10+
<version>2022.12.29</version>
1111
</parent>
1212

1313
<artifactId>mrchecker-selenium-module</artifactId>
14-
<version>2022.12.28</version>
14+
<version>2022.12.29</version>
1515
<packaging>jar</packaging>
1616
<name>MrChecker - Selenium - Module</name>
1717
<description>MrChecker Test Framework Selenium supports:
@@ -98,7 +98,7 @@
9898
<dependency>
9999
<groupId>${project.groupId}</groupId>
100100
<artifactId>mrchecker-core-module</artifactId>
101-
<version>2022.12.28</version>
101+
<version>2022.12.29</version>
102102
</dependency>
103103

104104
<!--This dependency is necessary for Selenium plugin. -->

mrchecker-framework-modules/mrchecker-selenium-module/src/main/java/com/capgemini/mrchecker/selenium/core/newDrivers/DriverManager.java

-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public DriverManager(@Named("properties") PropertiesSelenium propertiesSelenium)
4949
if (Objects.isNull(DriverManager.propertiesSelenium)) {
5050
DriverManager.propertiesSelenium = propertiesSelenium;
5151
}
52-
this.start();
5352
}
5453

5554
public void start() {

mrchecker-framework-modules/mrchecker-selenium-module/src/test/java/com/capgemini/mrchecker/selenium/core/newDrivers/DriverManagerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public void setUp() throws Exception {
2727
.getInstance(PropertiesSelenium.class);
2828

2929
driverManager = new DriverManager(propertiesSelenium);
30-
30+
driverManager.start();
3131
}
3232

3333
@AfterEach

mrchecker-framework-modules/mrchecker-webapi-module/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<artifactId>mrchecker-test-framework</artifactId>
99
<groupId>com.capgemini.mrchecker</groupId>
10-
<version>2022.12.28</version>
10+
<version>2022.12.29</version>
1111
</parent>
1212

1313
<artifactId>mrchecker-webapi-module</artifactId>
14-
<version>2022.12.28</version>
14+
<version>2022.12.29</version>
1515
<packaging>jar</packaging>
1616
<name>MrChecker - WebApi - Module</name>
1717
<description>
@@ -80,7 +80,7 @@
8080
<dependency>
8181
<groupId>${project.groupId}</groupId>
8282
<artifactId>mrchecker-core-module</artifactId>
83-
<version>2022.12.28</version>
83+
<version>2022.12.29</version>
8484
</dependency>
8585

8686
<!-- Dependency to REST and SOAP lib -->
+15-13
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
import com.capgemini.mrchecker.webapi.core.base.properties.PropertiesFileSettings;
1111
import com.capgemini.mrchecker.webapi.core.base.runtime.RuntimeParameters;
1212
import com.google.inject.Guice;
13+
import io.restassured.config.RestAssuredConfig;
14+
import io.restassured.specification.RequestSpecification;
1315

1416
import java.util.Objects;
1517

16-
public abstract class BasePageWebAPI extends Page implements IWebAPI {
17-
18+
public abstract class BaseEndpoint extends Page implements IWebAPI {
1819
private static DriverManager driver = null;
19-
2020
private final static PropertiesFileSettings propertiesFileSettings;
2121
private final static IAnalytics ANALYTICS;
2222
public final static String ANALYTICS_CATEGORY_NAME = "WebAPI-Module";
@@ -39,21 +39,25 @@ public static IAnalytics getAnalytics() {
3939
return ANALYTICS;
4040
}
4141

42-
public BasePageWebAPI() {
43-
getDriver();
44-
}
45-
4642
@Override
4743
public ModuleType getModuleType() {
4844
return ModuleType.WEBAPI;
4945
}
5046

51-
public static DriverManager getDriver() {
52-
if (Objects.isNull(BasePageWebAPI.driver)) {
47+
public static RequestSpecification getDriver() {
48+
if (Objects.isNull(driver)) {
49+
// Create module driver
50+
driver = new DriverManager(propertiesFileSettings);
51+
}
52+
return driver.getDriverWebAPI();
53+
}
54+
55+
public static RequestSpecification getDriver(RestAssuredConfig config) {
56+
if (Objects.isNull(driver)) {
5357
// Create module driver
54-
BasePageWebAPI.driver = new DriverManager(propertiesFileSettings);
58+
driver = new DriverManager(propertiesFileSettings);
5559
}
56-
return BasePageWebAPI.driver;
60+
return driver.getDriverWebAPI(config);
5761
}
5862

5963
private static PropertiesFileSettings setPropertiesSettings() {
@@ -66,7 +70,6 @@ private static void setRuntimeParametersWebApi() {
6670
// Read System or maven parameters
6771
BFLogger.logDebug(java.util.Arrays.asList(RuntimeParameters.values())
6872
.toString());
69-
7073
}
7174

7275
private static void setEnvironmentInstance() {
@@ -75,6 +78,5 @@ private static void setEnvironmentInstance() {
7578
* settings file for Selenium module. In future, please have a look on Core Module IEnvironmentService
7679
* environmetInstance = Guice.createInjector(new EnvironmentModule()) .getInstance(IEnvironmentService.class);
7780
*/
78-
7981
}
8082
}
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
* Although this operation is unsafe, it's been added to support migration from MrChecker Junit4 to Junit5.
77
*/
88
@Deprecated
9-
public abstract class BasePageWebAPIAutoRegistration extends BasePageWebAPI {
10-
11-
public BasePageWebAPIAutoRegistration() {
9+
public abstract class BaseEndpointAutoRegistration extends BaseEndpoint {
10+
public BaseEndpointAutoRegistration() {
1211
addToTestExecutionObserver();
1312
}
14-
}
13+
}

mrchecker-framework-modules/mrchecker-webapi-module/src/main/java/com/capgemini/mrchecker/webapi/core/base/driver/DriverManager.java

+24-26
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,14 @@
2323
import static io.restassured.RestAssured.given;
2424

2525
public class DriverManager {
26-
27-
private static ThreadLocal<VirtualizedService> driverVirtualizedService = new ThreadLocal<VirtualizedService>();
28-
26+
private static final ThreadLocal<VirtualizedService> driverVirtualizedService = new ThreadLocal<>();
2927
private static PropertiesFileSettings propertiesFileSettings;
3028

3129
@Inject
3230
public DriverManager(@Named("properties") PropertiesFileSettings propertiesFileSettings) {
3331
if (Objects.isNull(DriverManager.propertiesFileSettings)) {
3432
DriverManager.propertiesFileSettings = propertiesFileSettings;
3533
}
36-
37-
start();
3834
}
3935

4036
public void start() {
@@ -62,8 +58,7 @@ protected void finalize() throws Throwable {
6258
}
6359

6460
public static void clearAllDrivers() {
65-
driverVirtualizedService = new ThreadLocal<>();
66-
// driverVirtualizedService.remove();
61+
driverVirtualizedService.remove();
6762
}
6863

6964
public static WireMock getDriverVirtualService() {
@@ -104,12 +99,6 @@ private static VirtualizedService getVirtualizedService() {
10499
return virtualizedService;
105100
}
106101

107-
public static RequestSpecification getDriverWebAPI() {
108-
RequestSpecification driver = createDriverWebAPI();
109-
BFLogger.logDebug("driver:" + driver.toString());
110-
return driver;
111-
}
112-
113102
public static void closeDriverVirtualServer() {
114103
VirtualizedService virtualizedService = driverVirtualizedService.get();
115104

@@ -136,15 +125,6 @@ public static void closeDriverVirtualServer() {
136125
}
137126
}
138127

139-
/**
140-
* Method sets desired 'driver' depends on chosen parameters
141-
*/
142-
private static RequestSpecification createDriverWebAPI() {
143-
BFLogger.logDebug("Creating new driver.");
144-
RestAssured.config = new RestAssuredConfig().encoderConfig(new EncoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false));
145-
return given();
146-
}
147-
148128
static VirtualizedService createDriverVirtualServer() {
149129
BFLogger.logDebug("Creating new Mock Server");
150130

@@ -155,11 +135,10 @@ static VirtualizedService createDriverVirtualServer() {
155135
}
156136

157137
private enum Driver {
158-
159138
WIREMOCK {
160139
public VirtualizedService getDriver() throws FatalStartupException {
161140

162-
WireMock driver = null;
141+
WireMock driver;
163142
WireMockServerMrChecker driverServer = null;
164143

165144
int httpPort = getPort();
@@ -233,11 +212,30 @@ private int getInteger(String value) {
233212
}
234213
return number;
235214
}
236-
237215
};
238216

239217
public VirtualizedService getDriver() {
240218
return null;
241219
}
242220
}
243-
}
221+
222+
public static RequestSpecification getDriverWebAPI() {
223+
RestAssuredConfig config = new RestAssuredConfig().encoderConfig(new EncoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false));
224+
return getDriverWebAPI(config);
225+
}
226+
227+
public static RequestSpecification getDriverWebAPI(RestAssuredConfig config) {
228+
RequestSpecification driver = createDriverWebAPI(config);
229+
BFLogger.logDebug("driver:" + driver.toString());
230+
return driver;
231+
}
232+
233+
/**
234+
* Method sets desired 'driver' depends on chosen parameters
235+
*/
236+
private static RequestSpecification createDriverWebAPI(RestAssuredConfig config) {
237+
BFLogger.logDebug("Creating new driver.");
238+
RestAssured.config = config;
239+
return given();
240+
}
241+
}

mrchecker-framework-modules/mrchecker-webapi-module/src/main/java/com/capgemini/mrchecker/webapi/core/base/properties/PropertiesFileSettings.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,14 @@
44
import com.google.inject.name.Named;
55

66
public class PropertiesFileSettings {
7-
87
private boolean isVirtualServerEnabled = true;
98

109
@Inject(optional = true)
11-
private void setProperty_isVirtualServerEnabled(@Named("webapi.isVirtualServerEnabled") String value) {
12-
this.isVirtualServerEnabled = !value.toLowerCase()
13-
.equals("false");
10+
private void setVirtualServerEnabled(@Named("webapi.isVirtualServerEnabled") boolean value) {
11+
isVirtualServerEnabled = value;
1412
}
1513

1614
public boolean isVirtualServerEnabled() {
1715
return isVirtualServerEnabled;
1816
}
19-
20-
}
17+
}

0 commit comments

Comments
 (0)