Skip to content

Commit

Permalink
github action windows does not have internet access, put the mockserv…
Browse files Browse the repository at this point in the history
…er instead.
  • Loading branch information
ozkanpakdil committed Nov 13, 2023
1 parent 6c433b9 commit 140b57c
Show file tree
Hide file tree
Showing 4 changed files with 538 additions and 256 deletions.
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,18 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
<version>5.15.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java</artifactId>
<version>5.15.0</version>
<scope>test</scope>
</dependency>

</dependencies>

Expand Down
35 changes: 35 additions & 0 deletions src/test/java/com/mascix/swaggerific/SwaggerGuiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,73 @@
import javafx.application.Platform;
import javafx.scene.input.KeyCode;
import javafx.stage.Stage;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockserver.client.MockServerClient;
import org.mockserver.model.Header;
import org.testfx.api.FxAssert;
import org.testfx.api.FxRobot;
import org.testfx.framework.junit5.ApplicationExtension;
import org.testfx.framework.junit5.Start;
import org.testfx.matcher.control.TextInputControlMatchers;

import java.io.IOException;
import java.util.Objects;

import static org.hamcrest.Matchers.containsString;
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
import static org.testfx.matcher.base.NodeMatchers.isEnabled;

@ExtendWith(ApplicationExtension.class)
class SwaggerGuiTest {

private static MockServerClient mockServer;

/**
* Will be called with {@code @Before} semantics, i. e. before each test method.
*
* @param stage - Will be injected by the test runner.
*/
@Start
private void start(Stage stage) throws IOException {
String jsonBody = new String(Objects.requireNonNull(getClass().getResourceAsStream("/petstore-swagger.json")).readAllBytes());
String findByStatusResponse = new String(Objects.requireNonNull(getClass().getResourceAsStream("/findbystatus-response.json")).readAllBytes());
mockServer = startClientAndServer(1080);
mockServer.hasStarted();
mockServer.when(
request()
.withMethod("GET")
.withPath("/petstore-swagger.json")
)
.respond(
response()
.withStatusCode(200)
.withHeaders(
new Header("Content-Type", "application/json; charset=utf-8"),
new Header("Cache-Control", "public, max-age=86400"))
.withBody(jsonBody)
);

mockServer.when(request("/petstore-pet/findByStatus")).respond(response(findByStatusResponse));

Platform.isNestedLoopRunning();
SwaggerApplication swaggerApplication = new SwaggerApplication();
swaggerApplication.start(stage);
stage.show();
}

@AfterAll
public static void stopServer() {
mockServer.stop();
}

@Test
void click_treeview_call_get(FxRobot robot) {
robot.push(KeyCode.CONTROL, KeyCode.O);
robot.write("http://127.0.0.1:1080/petstore-swagger.json");
robot.push(KeyCode.ENTER);
robot.sleep(100);
System.out.println(robot.lookup("#treePaths").query());
Expand Down
Loading

0 comments on commit 140b57c

Please sign in to comment.