Skip to content

Commit dd9e0a8

Browse files
author
SergeyPirogov
committed
fix base path issue
1 parent 1343920 commit dd9e0a8

File tree

2 files changed

+47
-14
lines changed

2 files changed

+47
-14
lines changed

src/main/java/io/reqover/rest/assured/CoverageFilter.java

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,21 @@
99
import org.apache.commons.lang3.StringUtils;
1010

1111
import java.net.URI;
12-
import java.net.URISyntaxException;
1312
import java.util.List;
1413
import java.util.Map;
14+
import java.util.Objects;
1515
import java.util.stream.Collectors;
1616

1717
public abstract class CoverageFilter implements OrderedFilter {
1818

1919
protected CoverageInfo collectCoverageInfo(FilterableRequestSpecification requestSpec, Response response) {
2020
Integer statusCode = response.statusCode();
2121
Map<String, String> unnamedPathParams = requestSpec.getUnnamedPathParams();
22-
String uri = removeHostFromUri(requestSpec.getURI());
22+
URI requestURI = convertUriStringToURI(requestSpec.getURI());
23+
24+
String uri = removeHostFromUri(Objects.requireNonNull(requestURI));
2325
String basePath = requestSpec.getBasePath();
24-
String path = UrlPath.getPath(requestSpec.getUserDefinedPath(), unnamedPathParams);
26+
String path = requestURI.getPath();
2527

2628
String method = requestSpec.getMethod();
2729

@@ -61,19 +63,21 @@ protected CoverageInfo collectCoverageInfo(FilterableRequestSpecification reques
6163
return coverageInfo;
6264
}
6365

64-
private String removeHostFromUri(String uri) {
66+
private URI convertUriStringToURI(String uri) {
6567
try {
66-
URI url = new URI(uri);
67-
String query = url.getQuery();
68-
String path = url.getPath();
69-
if (StringUtils.isBlank(query)) {
70-
return path;
71-
}
72-
return path + "?" + query;
73-
} catch (URISyntaxException e) {
74-
e.printStackTrace();
68+
return new URI(uri);
69+
} catch (Exception e) {
70+
throw new RuntimeException("Can not parse URI " + uri + " " + e);
71+
}
72+
}
73+
74+
private String removeHostFromUri(URI uri) {
75+
String query = uri.getQuery();
76+
String path = uri.getPath();
77+
if (StringUtils.isBlank(query)) {
78+
return path;
7579
}
76-
return "";
80+
return path + "?" + query;
7781
}
7882

7983
@Override
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.reqover.test;
2+
3+
import io.reqover.rest.assured.SwaggerCoverage;
4+
import io.restassured.RestAssured;
5+
import io.restassured.filter.log.RequestLoggingFilter;
6+
import io.restassured.specification.RequestSpecification;
7+
import org.junit.jupiter.api.BeforeAll;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class TestOpenApiV3 {
11+
private final SwaggerCoverage swaggerCoverage = new SwaggerCoverage("build/reqover-results");
12+
13+
@BeforeAll
14+
public static void setUp() {
15+
RestAssured.baseURI = "https://canada-holidays.ca/api/v1";
16+
}
17+
18+
private RequestSpecification setup() {
19+
return RestAssured.given()
20+
.filter(new RequestLoggingFilter())
21+
.filter(swaggerCoverage);
22+
}
23+
24+
@Test
25+
void testGetPet() {
26+
setup()
27+
.get("/holidays/{holidayId}?year=2023&optional=false", 2);
28+
}
29+
}

0 commit comments

Comments
 (0)