Skip to content

Commit ec0a2c7

Browse files
servers: auto generated id when none provided (#1554)
1 parent f429f3b commit ec0a2c7

File tree

7 files changed

+82
-2
lines changed

7 files changed

+82
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Add: auto generated [Server](servers/introduction) `id` when none provided

webtau-docs/znai/servers/fake-server.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,6 @@ Java:
3838
}
3939
```
4040

41+
Note: If you omit `serverId` parameter, an auto generated one will be used instead. It affects what you see in the generated report
42+
4143

webtau-feature-testing/examples/scenarios/server/fakeRest.groovy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ scenario("fake rest server") {
4040
// fake-response-check
4141
}
4242

43+
scenario("auto generated server id") {
44+
def myServer = server.fake(router)
45+
http.get("${myServer.baseUrl}/hello/person") {
46+
message.should == "hello person"
47+
}
48+
}
49+
4350
scenario("slow down") {
4451
def myServer = server.fake("my-rest-server-slowed-down", router)
4552

webtau-feature-testing/examples/scenarios/server/staticContent.groovy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ scenario("static content server") {
5555
// static-server-html
5656
}
5757

58+
scenario("auto generated server id") {
59+
def myServer = server.serve("data/staticcontent")
60+
http.get("${myServer.baseUrl}/hello.html") {
61+
body.should == expectedHtml
62+
}
63+
}
64+
5865
scenario("slow down") {
5966
def myServer = server.serve("my-server-slown-down", "data/staticcontent")
6067
myServer.setAsBaseUrl()

webtau-feature-testing/test-expectations/scenarios/server/fakeRest/run-details.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
"scenario" : "after all tests",
44
"shortContainerId" : "Teardown",
55
"stepsSummary" : {
6-
"numberOfSuccessful" : 4
6+
"numberOfSuccessful" : 5
77
}
88
}, {
99
"scenario" : "fake rest server",
1010
"shortContainerId" : "fakeRest.groovy",
1111
"stepsSummary" : {
1212
"numberOfSuccessful" : 7
1313
}
14+
}, {
15+
"scenario" : "auto generated server id",
16+
"shortContainerId" : "fakeRest.groovy",
17+
"stepsSummary" : {
18+
"numberOfSuccessful" : 4
19+
}
1420
}, {
1521
"scenario" : "slow down",
1622
"shortContainerId" : "fakeRest.groovy",

webtau-feature-testing/test-expectations/scenarios/server/staticContent/run-details.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
"scenario" : "after all tests",
44
"shortContainerId" : "Teardown",
55
"stepsSummary" : {
6-
"numberOfSuccessful" : 6
6+
"numberOfSuccessful" : 7
77
}
88
}, {
99
"scenario" : "static content server",
1010
"shortContainerId" : "staticContent.groovy",
1111
"stepsSummary" : {
1212
"numberOfSuccessful" : 16
1313
}
14+
}, {
15+
"scenario" : "auto generated server id",
16+
"shortContainerId" : "staticContent.groovy",
17+
"stepsSummary" : {
18+
"numberOfSuccessful" : 4
19+
}
1420
}, {
1521
"scenario" : "slow down",
1622
"shortContainerId" : "staticContent.groovy",

webtau-server/src/main/java/org/testingisdocumenting/webtau/server/WebTauServerFacade.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.nio.file.Path;
2323
import java.nio.file.Paths;
2424
import java.util.Collections;
25+
import java.util.UUID;
2526

2627
import static org.testingisdocumenting.webtau.server.WebTauServerResponseBuilder.*;
2728

@@ -98,6 +99,24 @@ public WebTauServer serve(String serverId, Path path) {
9899
return serve(serverId, path, 0);
99100
}
100101

102+
/**
103+
* creates static content server with an auto generated serverId and starts it on a random part
104+
* @param path static content path
105+
* @return server instance
106+
*/
107+
public WebTauServer serve(String path) {
108+
return serve(generateUniqueServerId(), path, 0);
109+
}
110+
111+
/**
112+
* creates static content server with an auto generated serverId and starts it on a random part
113+
* @param path static content path
114+
* @return server instance
115+
*/
116+
public WebTauServer serve(Path path) {
117+
return serve(generateUniqueServerId(), path, 0);
118+
}
119+
101120
/**
102121
* creates static content server and starts it on the specified part
103122
* @param serverId unique server id
@@ -147,6 +166,15 @@ public WebTauProxyServer proxy(String serverId, String urlToProxy) {
147166
return proxy(serverId, urlToProxy, 0);
148167
}
149168

169+
/**
170+
* creates proxy server with an auto generated server id and starts it on a random part
171+
* @param urlToProxy url to proxy to
172+
* @return server instance
173+
*/
174+
public WebTauProxyServer proxy(String urlToProxy) {
175+
return proxy(generateUniqueServerId(), urlToProxy, 0);
176+
}
177+
150178
/**
151179
* creates a fake server and starts it on the specified port
152180
* @param serverId unique server id
@@ -171,6 +199,15 @@ public WebTauServer fake(String serverId) {
171199
return fake(serverId, 0);
172200
}
173201

202+
/**
203+
* creates a fake server with auto genrated server id and starts it on a random port
204+
* @return server instance
205+
* @see WebTauRouter
206+
*/
207+
public WebTauServer fake() {
208+
return fake(generateUniqueServerId(), 0);
209+
}
210+
174211
/**
175212
* creates a fake server and starts it on the specified port using provided router to defined responses
176213
* @param serverId unique server id
@@ -197,6 +234,16 @@ public WebTauServer fake(String serverId, WebTauRouter router) {
197234
return fake(serverId, 0, router);
198235
}
199236

237+
/**
238+
* creates a fake server with auto generated server id and starts it on a random port using provided router to defined responses
239+
* @param router responses definition
240+
* @return server instance
241+
* @see WebTauRouter
242+
*/
243+
public WebTauServer fake(WebTauRouter router) {
244+
return fake(generateUniqueServerId(), 0, router);
245+
}
246+
200247
/**
201248
* creates an instance of router to define or override responses
202249
* @param id unique router id
@@ -215,4 +262,8 @@ public WebTauRouter router(String id) {
215262
public WebTauRouter router() {
216263
return new WebTauRouter("main-router");
217264
}
265+
266+
private String generateUniqueServerId() {
267+
return UUID.randomUUID().toString();
268+
}
218269
}

0 commit comments

Comments
 (0)